/** * 实体接口定义 * 所有实体都应该实现这些基础接口 */ import { ContentItem, LensType, TagValueObject } from "./valueObject"; /** * 基础实体接口 */ export interface BaseEntity { /** 唯一标识 */ readonly id: string; } /** * AI文本实体接口 */ export interface AITextEntity { /** 唯一标识 */ readonly id: string; /** 文本内容 */ content: string; } /** * 角色实体接口 */ export interface RoleEntity { /** 唯一标识 */ readonly id: string; /** 角色名称 */ name: string; /** 角色提示词 */ generateText: string; /**角色标签 */ tags: TagValueObject[]; /** 角色图片URL */ imageUrl: string; /**来源于草稿箱 */ fromDraft: boolean; /**发生角色形象的生成或者替换 */ isChangeRole: boolean; } /** * 剧本中角色实体接口 */ export interface ScriptRoleEntity { /** 唯一标识 */ readonly id: string; /** 角色名称 */ name: string; /** 角色照片 */ image_url: string; } /** * 场景实体接口 */ export interface SceneEntity { /** 唯一标识 */ readonly id: string; /** 场景名称 */ name: string; /** 场景图片URL */ imageUrl: string; /** 场景标签 */ tagIds: TagValueObject[]; /** 场景提示词 */ generateText: string; } /** * 视频片段实体接口 */ export interface VideoSegmentEntity { /** 唯一标识 */ readonly id: string; /** 视频片段名称 */ name: string; /**视频片段草图Url */ sketchUrl: string; /**视频片段视频Url */ videoUrl: { video_url: string; video_id: string; video_status: number | null; }[]; /**视频片段状态 0:视频加载中 1:任务已完成 2:任务失败 */ status: number | null; /**镜头项 */ lens: LensType[]; } /** * 图片故事实体接口 * @description 表示一条图片故事及其相关信息 */ export interface ImageStoryEntity { /** 唯一标识 */ readonly id: string; /** 图片URL */ imageUrl: string; /** 图片故事用户描述 */ imageStory: string; /** 图片故事分析结果 */ imageAnalysis: string; /** 故事分类 */ storyType: string; /**角色头像 */ roleImage: { /** 名称 */ name: string; /** 头像URL(本地create的url) */ avatar_url: string; /** 角色区域 小数比例形式 */ region: { /** x坐标 */ x: number; /** y坐标 */ y: number; /** 宽度 */ width: number; /** 高度 */ height: number; } | null; }[]; } /** * 故事模板实体接口 * @description 表示一个故事模板及其相关信息 */ export interface StoryTemplateEntity { /** 唯一标识 */ readonly id: string; /** 故事模板名称 */ name: string; /** 故事模板图片 */ image_url: string[]; /** 故事模板概览*/ generateText: string; /** 故事分类 */ category: string; /** 故事模板ID */ template_id: string; /** 故事模板视频URL */ show_url: string; pcode: 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; }[]; /** 自由输入文字 */ freeInput: { /** 用户提示,提示给用户需要输入什么内容 */ user_tips: string; /** 约束,可选,用于传给ai,让ai去拦截用户不符合约束的输入内容 */ constraints: string; /** 自由输入文字 */ free_input_text: string; /** 输入名称 */ input_name: string; }[]; }