返回 AiToEarn
assets-http.dto.ts
根目录 / project / aitoearn-backend / libs / assets / src / http / assets-http.dto.ts
1 import { createZodDto } from '@yikart/common'
2 import { AssetType } from '@yikart/mongodb'
3 import { z } from 'zod'
4
5 const createUploadSignSchema = z.object({
6 filename: z.string().describe('文件名(带扩展名)'),
7 type: z.enum(AssetType).default(AssetType.Temp).describe('资源类型'),
8 size: z.number().optional().describe('文件大小(字节)'),
9 })
10 export class CreateUploadSignDto extends createZodDto(createUploadSignSchema) {}
11
12 const getThumbnailQuerySchema = z.object({
13 url: z.string().describe('视频 URL(CDN URL 或 path)'),
14 timeInSeconds: z.coerce.number().min(0).default(1).describe('提取帧的时间点(秒),默认 1 秒'),
15 redirect: z.coerce.boolean().default(false).describe('是否直接重定向到封面 URL,默认 false'),
16 })
17 export class GetThumbnailQueryDto extends createZodDto(getThumbnailQuerySchema) {}
18
19 const ossCallbackDtoSchema = z.object({
20 object: z.string().describe('OSS 对象路径'),
21 size: z.coerce.number().describe('文件大小'),
22 mimeType: z.string().describe('MIME 类型'),
23 assetId: z.string().describe('资产 ID'),
24 })
25 export class OssCallbackDto extends createZodDto(ossCallbackDtoSchema, 'OssCallbackDto') {}
26
26 lines TYPESCRIPT