import { AspectRatioValue } from '@/components/ChatInputBox/AspectRatioSelector' /** * 图片故事AI分析返回DTO */ export interface CharacterRegion { /** x坐标 */ x: number; /** y坐标 */ y: number; /** 区域宽度 */ width: number; /** 区域高度 */ height: number; } /** 角色分析信息 */ export interface CharacterAnalysis { /** 角色头像URL */ crop_url: string; /** 角色ID */ id: string; /** 角色名称 */ role_name: string; /** 角色区域 */ region: CharacterRegion | null; /** 角色描述 */ whisk_caption: string; /** 角色头像URL(可选,用于存储裁剪后的头像) */ avatarUrl?: string; } /** 图片故事AI分析返回结构 */ export interface MovieStartDTO { /** 是否成功 */ success: boolean; /** 故事梗概 */ story_logline: string; /** 分类数据 */ potential_genres: string[]; /** 角色头像及名称 */ characters_analysis: CharacterAnalysis[]; /** 图片URL */ image_url: string; /** 用户输入文本 */ user_text: string; /** 错误信息 */ error: string | null; } /** 电影故事任务详情 */ export interface MovieStoryTaskDetail { /** 任务ID */ task_id: string; /** 状态 */ status: string; /** 进度 */ progress: number; /** 当前步骤 */ current_step: string; /** 步骤消息 */ step_message: string; /** 已用时间 */ elapsed_time: number; /** 预计剩余时间 */ estimated_remaining: number | null; /** 错误信息 */ error_message: string | null; /** 结果 */ result: MovieStartDTO; } /**图片分析出故事的任务相关数据,用于轮询查状态 */ export interface StoryAnalysisTask{ /** 任务ID */ task_id:string; /** 状态 */ status:string; /** 消息 */ message:string; /** 预计时长 */ estimated_duration:number; } /** * 创建电影项目V2请求参数 照片生成电影 */ export interface CreateMovieProjectV2Request { /** 任务ID */ project_id:string; /** 剧本内容 */ script: string; /** 用户ID */ user_id: string; /** 客户端用户数据 */ user_data?: { is_mobile: 1 | 0; user_agent: string; }; /** 模式:auto | manual */ mode: "auto" | "manual"; /** 分辨率:720p | 1080p | 4k */ resolution: "720p" | "1080p" | "4k"; /** 类型 */ genre: string; /** 角色简介数组 */ character_briefs: { name:string; image_url:string; character_analysis:string; }[]; /** 语言 */ language: string; /** 图片URL */ image_url: string; /** 画面比例(横/竖屏) */ aspect_ratio?: AspectRatioValue; } /** * 创建电影项目V2响应数据 */ export interface CreateMovieProjectResponse { /** 原始文本 */ original_text: string; /** 项目ID */ project_id: string; /** 视频数据 */ video: Record; /** 扩展数据2 */ ext2: Record; /** 多语言视频 */ multilingual_video: Record; /** 制作手册 */ production_bible: string; /** 项目名称 */ name: string; /** 音乐数据 */ music: Record; /** 扩展数据3 */ ext3: Record; /** 语言 */ language: string; /** 分镜头 */ storyboard: string; /** 状态 */ status: string; /** 最终视频 */ final_video: Record; /** 扩展数据4 */ ext4: string; /** 产品代码 */ pcode: string; /** 制作手册JSON */ production_bible_json: Record; /** 步骤 */ step: string; /** 最终简单视频 */ final_simple_video: Record; /** 扩展数据5 */ ext5: string; /** 产品代码版本 */ pcode_version: string; /** 分辨率 */ resolution: string; /** 剧本分镜头 */ script_shots: string; /** 最后消息 */ last_message: string; /** 扩展数据 */ ext: Record; /** 角色草稿 */ character_draft: any; /** 模式 */ mode: string; /** 提示词 */ prompts: string; /** 草图 */ sketch: Record; /** 当前任务ID */ current_task_id: string; /** 创建时间 */ created_at: string; /** ID */ id: number; /** 描述 */ description: string; /** 镜头草图 */ shot_sketch: Record; /** 扩展数据1 */ ext1: Record; /** 当前计划ID */ current_plan_id: string; /** 用户ID */ user_id: string; /** 生成的剧本 */ generated_script: string; /** 角色数据 */ character: Record; /** 更新时间 */ updated_at: string; } /** * 创建电影项目V3请求参数 模板生成电影 */ export interface CreateMovieProjectV3Request { /** 故事梗概 */ script: string; /**分类 */ category: string; /** 用户ID */ user_id: string; /** 客户端用户数据 */ user_data?: { is_mobile: 1 | 0; user_agent: string; }; /** 模式:auto | manual */ mode: "auto" | "manual"; /** 分辨率:720p | 1080p | "4k" */ resolution: "720p" | "1080p" | "4k"; /** 语言 */ language: string; /**模板id */ template_id: string; /** 自由输入 */ freeInput?: { /** 用户提示,提示给用户需要输入什么内容 */ user_tips: string; /** 约束,可选,用于传给ai,让ai去拦截用户不符合约束的输入内容 */ constraints: string; /** 自由输入文字 */ free_input_text: string; /** 输入名称 */ input_name: string; }[]; /** 故事角色 */ storyRole: { /** 角色名 */ role_name: string; /** 角色描述,ai分析出来,用于剧本生成 */ role_description: string; /** 用户提示,提示给用户需要输入什么内容 */ user_tips: string; /** 约束,可选,用于传给ai,让ai去拦截用户不符合约束的输入内容 */ constraints: string; /** 照片URL */ photo_url: string; /** 声音URL */ voice_url: string; }[]; /** 道具 */ storyItem: { /** 道具名 */ item_name: string; /** 道具描述,ai分析出来,用于剧本生成 */ item_description: string; /** 用户提示,提示给用户需要输入什么内容 */ user_tips: string; /** 约束,可选,用于传给ai,让ai去拦截用户不符合约束的输入内容 */ constraints: string; /** 道具照片URL */ photo_url: string; }[]; /** 画面比例(横/竖屏) */ aspect_ratio?: AspectRatioValue; } /** * Gemini文本转图像请求参数 */ export interface GeminiTextToImageRequest { /** 提示词 */ prompt: string; } /** * Gemini文本转图像响应数据 */ export interface GeminiTextToImageData { /** 生成的图像URL */ image_url: string; } /** * Gemini文本转图像响应 */ export interface GeminiTextToImageResponse { /** 响应码 */ code: number; /** 响应消息 */ message: string; /** 响应数据 */ data: GeminiTextToImageData; /** 是否成功 */ successful: boolean; } /** * 文本转图像请求参数 */ export interface TextToImageRequest { /** 图像描述 */ description: string; } /** * 文本转图像响应数据 */ export interface TextToImageData { /** 生成的图像URL */ image_url: string; /** 本地图像路径 */ local_image_path: string; /** 是否成功 */ success: boolean; /** 描述 */ description: string; /** 宽高比 */ aspect_ratio: string; } /** * 文本转图像响应 */ export interface TextToImageResponse { /** 响应码 */ code: number; /** 响应消息 */ message: string; /** 响应数据 */ data: TextToImageData; /** 是否成功 */ successful: boolean; } /** * 创建电影V4接口请求数据 */ export interface CreateMovieProjectV4Request { /** 剧本内容 */ script: string; /** 模式 */ mode: "auto" | "manual"; /** 分辨率 */ resolution: "720p" | "1080p" | "4k"; /** 语言 */ language: string; /** 画面比例(横/竖屏) */ aspect_ratio: AspectRatioValue; /** 是否是图生 */ is_image_to_video: boolean; /** pcode编码 */ pcode: string; /** 角色简介数组 */ character_briefs?: { character_name:string; character_description:string; image_url:string; }[]; /** 场景简介数组 */ scene_briefs?: { scene_name:string; scene_description:string; image_url:string; scene_type:string; }[]; /** 道具简介数组 */ prop_briefs?: { prop_name:string; prop_description:string; image_url:string; prop_type:string; }[]; }