返回 AiToEarn
signIn.dto.ts
根目录 / project / aitoearn-electron / server / src / modules / reward / dto / signIn.dto.ts
1 /*
2 * @Author: nevin
3 * @Date: 2025-02-15 20:59:55
4 * @LastEditTime: 2025-04-27 18:16:37
5 * @LastEditors: nevin
6 * @Description:
7 */
8 import { ApiProperty } from '@nestjs/swagger';
9 import { Expose } from 'class-transformer';
10 import {
11 ArrayMaxSize,
12 ArrayMinSize,
13 IsArray,
14 IsDateString,
15 IsEnum,
16 IsNotEmpty,
17 IsOptional,
18 } from 'class-validator';
19 import { PagerDto } from 'src/common/dto/pager.dto';
20 import { SignIn, SignInType } from 'src/db/schema/signIn.schema';
21
22 export class CreateSignInDto implements Partial<SignIn> {
23 @ApiProperty({ enum: SignInType })
24 @IsNotEmpty({ message: '类型不能为空' })
25 @IsEnum(SignInType)
26 @Expose()
27 type: SignInType;
28 }
29
30 export class QuerySignInListDto extends PagerDto {
31 @ApiProperty({ enum: SignInType })
32 @IsNotEmpty({ message: '类型不能为空' })
33 @IsEnum(SignInType)
34 @Expose()
35 readonly type: SignInType;
36
37 @ApiProperty({ title: '创建时间区间', required: false })
38 @IsArray({ message: '创建时间区间必须是一个数组' })
39 @ArrayMinSize(2, { message: '创建时间区间必须包含两个日期' })
40 @ArrayMaxSize(2, { message: '创建时间区间必须包含两个日期' })
41 @IsDateString({}, { each: true })
42 @IsOptional()
43 @Expose()
44 readonly time?: [Date, Date];
45 }
46
46 lines TYPESCRIPT