interface AuthedRequest { token?: string user_id?: number } interface BaseResponse { ret: number msg: string data: T } // TODO: PagedData schema interface PagedData { total: number page: number perpage: number items: T[] } interface UserSchema { id: number username: string nickname: string avatar: string sex: 0 | 1 | 2 // 0: 未知, 1: 男, 2: 女 email: string mobile: string auth_code: 0 | 1 | 2 // 0: Banned, 1: User, 2: Operator } // Common request and response schemas namespace req { namespace user { /** * @description 用户登录 * @param username 用户名或手机号 * @param password 密码 */ interface Login { username: string password: string } interface SmsLogin { mobile: string } interface SmsLoginVerify { mobile: string sms_code: string } } namespace file { interface Upload { file_name: string file_type: string file_size: number } } namespace gen { interface CourseGenList { page?: number perpage?: number to_user_id: number } /** * @description 创建生成任务 * @param digital_human_id 数字人物 ID (string || number 存疑) */ interface CourseGenCreate { digital_human_id: string ppt_url: string opening_url: string ending_url: string custom_video: string gen_server: 'main' | 'standby1' task_title: string speed: number } } interface AssistantTemplateList { page: number perpage: number } } namespace resp { namespace user { interface CheckSession { is_login: boolean } interface Login { is_login: boolean token?: string user_id?: number } interface Profile { profile: UserSchema } interface SmsLogin { message: string } interface SmsLoginVerify { token: string person_id: number } } namespace gen { interface CourseGenItem { message: string device_id: string user_id: number task_id: string create_time: number complete_time: number duration: number video_duration: number token: string progress: number digital_human_id: number video_url: string subtitle_url: string video_cover: string custom_video: string title: string ppt_url: string opening_url: string ending_url: string speed: number } interface CourseGenCreate { task_id: string res_gen_server: 'main' | 'standby1' record_status: 0 | 1 } } } // Specific modals namespace HunYuan { type Resolution = '768:768' | '768:1024' | '1024:768' interface resp { data_id: string | number request_id: string request_image: string } namespace Text2Img { interface req { device_id: string prompt: string negative_prompt?: string styles: number resolution: string } } namespace Img2Img { interface req { device_id: string prompt: string negative_prompt?: string styles: number resolution: string file: File } } }