返回 AiToEarn
media-group.dto.ts
根目录 / project / aitoearn-backend / apps / aitoearn-server / src / core / content / media-group.dto.ts
1 /*
2 * @Author: nevin
3 * @Date: 2024-08-19 15:58:47
4 * @LastEditTime: 2025-05-13 16:00:00
5 * @LastEditors: nevin
6 * @Description: mediaGroup MediaGroup
7 */
8 import { createZodDto, TableDtoSchema } from '@yikart/common'
9 import { MediaType } from '@yikart/mongodb'
10 import { z } from 'zod'
11
12 const MediaGroupIdSchema = z.object({
13 id: z.string().describe('ID'),
14 })
15
16 export class MediaGroupIdDto extends createZodDto(MediaGroupIdSchema) {}
17
18 const CreateMediaGroupSchema = z.object({
19 type: z.enum(MediaType).describe('类型'),
20 title: z.string().describe('标题'),
21 desc: z.string().describe('描述'),
22 })
23
24 export class CreateMediaGroupDto extends createZodDto(CreateMediaGroupSchema) {}
25
26 export const UpdateMediaSchema = z.object({
27 title: z.string().optional().describe('标题'),
28 desc: z.string().optional().describe('描述'),
29 })
30 export class UpdateMediaGroupDto extends createZodDto(UpdateMediaSchema) {}
31
32 const MediaGroupFilterSchema = z.object({
33 title: z.string().optional().describe('标题'),
34 type: z.enum(MediaType).optional().describe('类型'),
35 })
36
37 export class MediaGroupFilterDto extends createZodDto(MediaGroupFilterSchema) {}
38
39 const MediaGroupListSchema = z.object({
40 filter: MediaGroupFilterSchema.optional().describe('过滤条件'),
41 page: TableDtoSchema.describe('分页信息'),
42 })
43
44 export class MediaGroupListDto extends createZodDto(MediaGroupListSchema) {}
45
45 lines TYPESCRIPT