| 1 | import { createZodDto } from '@yikart/common' |
| 2 | import { z } from 'zod' |
| 3 | |
| 4 | // OpenAI 视频响应 VO |
| 5 | const openAIVideoResponseSchema = z.object({ |
| 6 | id: z.string().describe('视频任务ID'), |
| 7 | status: z.enum(['queued', 'in_progress', 'completed', 'failed']).describe('任务状态'), |
| 8 | model: z.string().describe('模型名称'), |
| 9 | prompt: z.string().nullable().describe('提示词'), |
| 10 | progress: z.number().describe('进度'), |
| 11 | created_at: z.number().describe('创建时间'), |
| 12 | completed_at: z.number().nullable().describe('完成时间'), |
| 13 | expires_at: z.number().nullable().describe('过期时间'), |
| 14 | error: z.object({ |
| 15 | code: z.string(), |
| 16 | message: z.string(), |
| 17 | }).nullable().describe('错误信息'), |
| 18 | remixed_from_video_id: z.string().nullable().describe('源视频ID'), |
| 19 | seconds: z.string().describe('视频时长'), |
| 20 | size: z.string().describe('视频尺寸'), |
| 21 | object: z.literal('video').describe('对象类型'), |
| 22 | }) |
| 23 | |
| 24 | export class OpenAIVideoResponseVo extends createZodDto(openAIVideoResponseSchema) {} |
| 25 |