feat: migrate direct tenant content and learning endpoints

This commit is contained in:
xiong
2026-07-26 17:57:03 +08:00
parent 1d7e09b1f0
commit 91a4162908
18 changed files with 4079 additions and 0 deletions

View File

@@ -36,6 +36,37 @@ public sealed record AssetUploadConfirmCommand(
long? FileSizeBytes,
string? ChecksumSha256);
public sealed record UpsertAssetCommand(
Guid? AssetId,
Guid? RegionId,
Guid? SubjectId,
Guid? CategoryId,
Guid? ContentNodeId,
string? LegacyId,
string? AssetKey,
string? Title,
string? Category,
string? Description,
string? FileName,
string? CdnUrl,
bool? IsPublic,
string? AssetType,
string? Visibility,
string? Status,
string? Provider,
string? Bucket,
string? ObjectKey,
string? MimeType,
long? FileSizeBytes,
string? ChecksumSha256,
string? PreviewUrl,
string? PreviewObjectKey,
int? Order,
JsonElement AccessRules,
JsonElement Metadata);
public sealed record AssetAccessSignCommand(Guid AssetId, int? ExpiresInSeconds);
public sealed record AssetManagementFilter(
Guid? RegionId = null,
Guid? SubjectId = null,
@@ -54,6 +85,8 @@ public sealed record ImportJobFilter(
string? SourceFormat = null,
int? Limit = null);
public sealed record AssetEventFilter(Guid? AssetId = null, Guid? UserId = null, int? Limit = null);
public sealed record ContentAssetManagementItem(
Guid Id,
string? LegacyId,
@@ -96,6 +129,39 @@ public sealed record AssetUploadConfirmResult(
ContentAssetManagementItem Item,
ObjectStorageMetadata Metadata);
public sealed record AssetManagementSignedAccessResult(
ContentAssetManagementItem Item,
ObjectStorageSignedUrl Url);
public sealed record ContentAssetAccessEventItem(
Guid Id,
Guid? AssetId,
Guid? UserId,
AssetAccessActorRole ActorRole,
AssetAccessType AccessType,
string? Visibility,
string? AssetType,
string? StorageProvider,
AssetAccessDisposition? Disposition,
int? ExpiresInSeconds,
string? SignatureMode,
AssetAccessResult Result,
string? DenyCode,
string? IpAddress,
string? UserAgent,
JsonElement Metadata,
DateTimeOffset CreatedAt);
public sealed record ContentAssetSecurityScanEventItem(
Guid Id,
Guid? AssetId,
string Provider,
AssetSecurityScanStatus ScanStatus,
AssetSecurityRiskLevel RiskLevel,
string[] IssueCodes,
JsonElement Details,
DateTimeOffset CreatedAt);
public sealed record ContentImportJobItem(
Guid Id,
Guid? TargetRegionId,