返回 AiToEarn
user.vo.ts
1 import { createZodDto } from '@yikart/common'
2 import { z } from 'zod'
3
4 // ---------------------------------------------------------------------------
5 // UserInfo
6 // ---------------------------------------------------------------------------
7
8 export const UserInfoSchema = z.object({
9 id: z.string().describe('用户 ID'),
10 name: z.string().describe('用户名'),
11 mail: z.string().describe('邮箱'),
12 avatar: z.string().optional().describe('头像 URL'),
13 status: z.number().describe('用户状态'),
14 isDelete: z.boolean().describe('是否删除'),
15 createdAt: z.coerce.date().describe('创建时间'),
16 updatedAt: z.coerce.date().describe('更新时间'),
17 usedStorage: z.number().describe('已用存储空间'),
18 })
19 export interface UserInfo extends z.infer<typeof UserInfoSchema> {}
20
21 // ---------------------------------------------------------------------------
22 // UserInfoVo
23 // ---------------------------------------------------------------------------
24
25 export const UserInfoVoSchema = z.object({
26 id: z.string().min(1).max(50).describe('用户ID'),
27 name: z.string().min(1).max(50).describe('用户名'),
28 mail: z.email().optional().describe('邮箱'),
29 avatar: z.string().optional().describe('头像 URL'),
30 status: z.number().describe('用户状态,0-禁用,1-启用'),
31 isDelete: z.boolean().describe('是否删除'),
32 })
33 export class UserInfoVo extends createZodDto(UserInfoVoSchema, 'UserInfoVo') {}
34
34 lines TYPESCRIPT