import { IsNotEmpty, IsOptional, IsString, IsInt, IsObject, Min, Max, MaxLength } from "class-validator"; export class UpdateJobDTO { @IsString() @IsNotEmpty({ message: "cron 表达式不能为空" }) @MaxLength(64, { message: "cron 表达式最大 64 字符" }) cronExpression!: string; @IsOptional() @IsObject() params?: Record; @IsInt() @Min(0, { message: "重试次数不能小于 0" }) @Max(5, { message: "重试次数不能超过 5" }) retryTimes!: number; @IsInt() @Min(10, { message: "重试间隔不能小于 10 秒" }) @Max(3600, { message: "重试间隔不能超过 3600 秒" }) retryInterval!: number; @IsOptional() @IsString() @MaxLength(255, { message: "备注最大 255 字符" }) remark?: string; } export class JobStatusDTO { @IsInt() @Min(0, { message: "状态值非法" }) @Max(1, { message: "状态值非法" }) status!: number; } export class JobLogQueryDTO { @IsOptional() @IsInt() @Min(1) page?: number = 1; @IsOptional() @IsInt() @Min(1) @Max(200, { message: "分页大小不能超过 200 条" }) pageSize?: number = 10; @IsOptional() @IsInt() status?: number; @IsOptional() @IsInt() triggerType?: number; @IsOptional() @IsString() startDate?: string; @IsOptional() @IsString() endDate?: string; }