export interface MaterialFile { id: string; file_name: string; url: string; } export interface OutputVideoFile { id: string; file_name: string; url: string; } export interface ManualTask { task_id: string; user_id: string; status: 'Created' | 'Processing' | 'Completed' | 'Failed'; created_at: string; started_at: string; completed_at: string; failure_reason: string | null; template_id: number; source_files: MaterialFile[]; output_video_file?: OutputVideoFile; } export interface Size { value: number; unit: 'B' | 'KB' | 'MB' | 'GB' | 'TB'; } export interface ContentType { value: string; } export interface FilePath { value: string; } export interface Metadata { [key: string]: any; } export type UploadStatus = 'Pending' | 'Uploading' | 'Completed' | 'Failed'; export type DeletionStatus = 'Active' | 'PendingDeletion' | 'Deleted'; export interface ConfirmUpload { file_id: number; name: string; size: Size; content_type: ContentType; upload_time: string; // ISO date string storage_medium: string; file_path: FilePath; uploader_id: number; upload_status: UploadStatus; deletion_status: DeletionStatus; metadata: Metadata; }