返回 AiToEarn
openai.vo.ts
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
25 lines TYPESCRIPT