Files
tiku-backend.net/Tiku.Application/Assets/AssetAccessModels.cs
2026-07-26 14:54:50 +08:00

41 lines
1.0 KiB
C#

using System.Text.Json;
using Tiku.Application.Storage;
using Tiku.Domain.Content;
namespace Tiku.Application.Assets;
public sealed record AssetAccessRequest(
Guid TenantId,
Guid AssetId,
Guid? UserId,
string? IpAddress,
string? UserAgent,
TimeSpan? RequestedExpiresIn = null);
public sealed record AssetAccessResultModel(
ContentAssetAccessSummary Item,
AssetAccessPrincipal Access,
ObjectStorageSignedUrl Url,
JsonElement Watermark);
public sealed record ContentAssetAccessSummary(
Guid Id,
ContentAssetType AssetType,
string? Title,
string? FileName,
string? PreviewUrl,
AssetUploadStatus UploadStatus,
AssetSecurityScanStatus SecurityScanStatus,
AssetPreviewStatus PreviewStatus,
ContentVisibility Visibility);
public sealed record AssetAccessPrincipal(
Guid? UserId,
bool IsMember,
bool HasSvip);
public sealed class AssetAccessException(string message, string code) : InvalidOperationException(message)
{
public string Code { get; } = code;
}