拆镜复刻、爆款开头复刻管理后台完成

This commit is contained in:
2026-06-17 15:42:07 +08:00
parent 5d5e6485ee
commit 0d647a7171
31 changed files with 3042 additions and 2777 deletions
+239
View File
@@ -342,3 +342,242 @@ export interface GenerationAITaskQueryParams {
userName?: string;
}
// ── Admin Replication Readonly Types ──────────────────────────────────────
export type ModuleReplicationStatus =
| 'pending'
| 'waiting_user'
| 'processing'
| 'completed'
| 'failed'
| 'cancelled'
| string;
export interface ReplicationStepOut {
id: string;
projectId: string;
module: string;
stepIndex: number;
stepCode: string;
status: string;
version: number;
isCurrent: boolean;
parentStepId?: string | null;
sourceStepId?: string | null;
chatTaskId?: string | null;
input?: Record<string, any> | null;
output?: Record<string, any> | null;
errorMessage?: string | null;
createdAt?: string | null;
updatedAt?: string | null;
completedAt?: string | null;
}
export interface ReplicationMaterialOut {
materialStepId?: string | null;
materialVideoUrl?: string | null;
materialImageUrl?: string | null;
sourceProjectName?: string | null;
targetProjectName?: string | null;
coreContentPoint?: string | null;
}
export interface ReplicationImageGenerationOut {
promptStepId?: string | null;
generateStepId?: string | null;
prompt?: string | null;
engineId?: string | null;
engineName?: string | null;
params?: Record<string, any> | null;
chatTaskId?: string | null;
status?: string | null;
resultImageUrl?: string | null;
errorMessage?: string | null;
}
export interface ReplicationVideoGenerationOut {
promptStepId?: string | null;
generateStepId?: string | null;
promptSchema?: Record<string, any> | null;
finalPrompt?: string | null;
promptParams?: Record<string, any> | null;
engineId?: string | null;
engineName?: string | null;
params?: Record<string, any> | null;
chatTaskId?: string | null;
status?: string | null;
resultVideoUrl?: string | null;
resultVideoCoverUrl?: string | null;
errorMessage?: string | null;
}
export interface ReplicationProjectDetailOut {
id: string;
projectId: string;
userId?: string | null;
userName?: string | null;
module: string;
title?: string | null;
status: ModuleReplicationStatus;
currentStepCode?: string | null;
finalImageUrl?: string | null;
finalVideoUrl?: string | null;
finalVideoCoverUrl?: string | null;
errorMessage?: string | null;
material: ReplicationMaterialOut;
imageGeneration: ReplicationImageGenerationOut;
videoGeneration: ReplicationVideoGenerationOut;
steps: ReplicationStepOut[];
createdAt?: string | null;
updatedAt?: string | null;
completedAt?: string | null;
}
export interface HotOpeningTaskListItemOut {
id: string;
projectId: string;
userId?: string | null;
userName?: string | null;
module: string;
title?: string | null;
status: ModuleReplicationStatus;
currentStepCode?: string | null;
sourceProjectName?: string | null;
targetProjectName?: string | null;
coreContentPoint?: string | null;
finalImageUrl?: string | null;
finalVideoUrl?: string | null;
finalVideoCoverUrl?: string | null;
errorMessage?: string | null;
createdAt?: string | null;
updatedAt?: string | null;
completedAt?: string | null;
}
export interface HotOpeningTaskListOut {
total: number;
items: HotOpeningTaskListItemOut[];
}
export interface AdminHotOpeningTaskQueryParams {
status?: string;
keyword?: string;
userId?: string;
userName?: string;
createdStart?: string;
createdEnd?: string;
page?: number;
pageSize?: number;
}
export interface ShotTaskSetOut {
id: string;
userId?: string | null;
userName?: string | null;
title?: string | null;
videoUrl: string;
videoDurationSeconds: number;
status: string;
analysisStatus: string;
splitStatus: string;
originalVideoContent?: string | null;
originalVideoCategory?: string | null;
originalVideoAudience?: string | null;
segmentCount: number;
completedSegmentCount: number;
failedSegmentCount: number;
analysisErrorMessage?: string | null;
splitErrorMessage?: string | null;
createdAt?: string | null;
updatedAt?: string | null;
}
export interface ShotAiSuggestionOut {
index: number;
startSecond: number;
endSecond: number;
durationSeconds: number;
timeNode: string;
content?: string | null;
category?: string | null;
audience?: string | null;
}
export interface ShotTaskSetDetailOut extends ShotTaskSetOut {
aiSuggestions: ShotAiSuggestionOut[];
analysisResultJson?: Record<string, any> | any[] | null;
}
export interface ShotTaskSetListOut {
total: number;
page: number;
pageSize: number;
items: ShotTaskSetOut[];
}
export interface AdminShotTaskSetQueryParams {
status?: string;
analysisStatus?: string;
splitStatus?: string;
keyword?: string;
userId?: string;
userName?: string;
createdStart?: string;
createdEnd?: string;
page?: number;
pageSize?: number;
}
export interface ShotSegmentOut {
id: string;
taskSetId: string;
segmentIndex: number;
segmentName?: string | null;
sourceMode: string;
startSecond: number;
endSecond: number;
durationSeconds: number;
timeNode: string;
splitStatus: string;
analysisStatus: string;
replicateStatus: string;
segmentVideoUrl?: string | null;
originalVideoContent?: string | null;
originalVideoCategory?: string | null;
originalVideoAudience?: string | null;
segmentContent?: string | null;
segmentCategory?: string | null;
segmentAudience?: string | null;
splitRetryCount: number;
splitLastError?: string | null;
analysisErrorMessage?: string | null;
moduleProjectId?: string | null;
moduleProjectTitle?: string | null;
moduleProjectStatus?: string | null;
moduleProjectCurrentStepCode?: string | null;
createdAt?: string | null;
updatedAt?: string | null;
}
export interface ShotSegmentDetailOut extends ShotSegmentOut {
analysisJson?: Record<string, any> | any[] | null;
aiSuggestionJson?: Record<string, any> | any[] | null;
}
export interface ShotSegmentListOut {
total: number;
page: number;
pageSize: number;
items: ShotSegmentOut[];
}
export interface AdminShotSegmentQueryParams {
sourceMode?: string;
splitStatus?: string;
analysisStatus?: string;
replicateStatus?: string;
page?: number;
pageSize?: number;
}