feat: add asset watermark access context

This commit is contained in:
Codex
2026-06-29 20:18:27 +08:00
parent ce538a57c7
commit e0393126a1
18 changed files with 361 additions and 44 deletions

View File

@@ -125,6 +125,18 @@ export interface ContentAsset {
previewStatus?: string;
}
export interface AssetWatermarkContext {
mode: 'none' | 'visible_overlay';
required: boolean;
text: string;
traceId: string;
position: 'diagonal' | 'bottom-right' | 'center';
opacity: number;
repeat: boolean;
expiresAt?: string | null;
renderHint: string;
}
export async function loadRegions() {
return apiRequest<{ items?: RegionItem[] }>('/api/catalog/regions');
}
@@ -192,9 +204,9 @@ export async function loadContentAssets(query: { entryId?: string; contentNodeId
}
export async function signAssetPreview(assetId: string) {
return apiRequest<{ preview?: { url?: string }; item?: ContentAsset }>('/api/catalog/assets/preview', { query: { assetId } });
return apiRequest<{ preview?: { url?: string }; item?: ContentAsset; watermark?: AssetWatermarkContext }>('/api/catalog/assets/preview', { query: { assetId } });
}
export async function signAssetDownload(assetId: string) {
return apiRequest<{ download?: { url?: string }; item?: ContentAsset }>('/api/catalog/assets/download', { query: { assetId } });
return apiRequest<{ download?: { url?: string }; item?: ContentAsset; watermark?: AssetWatermarkContext }>('/api/catalog/assets/download', { query: { assetId } });
}

View File

@@ -1,4 +1,5 @@
import { apiRequest } from './api';
import type { AssetWatermarkContext } from './catalog';
export interface QuestionVideoItem {
id: string;
@@ -21,6 +22,7 @@ export interface VideoPlayback {
expiresInSec?: number;
signatureMode?: string;
};
watermark?: AssetWatermarkContext;
access?: Record<string, unknown>;
}