Files
smart_grid_iot/server/src/dto/service_price.dto.ts
T
andyesfly f4454ad014 feat: 新增电工APP端与定时任务管理功能
- 新增电工APP独立鉴权中间件与登录注册接口
- 新增定时任务管理模块,支持任务配置、执行日志与手动触发
- 新增运维费定价与电工派单成本价目管理
- 新增电工资质证照管理与到期提醒定时任务
- 完善数据库实体与DTO校验,优化权限控制
2026-10-02 16:08:00 +08:00

52 lines
1.8 KiB
TypeScript

import { IsNotEmpty, IsOptional, IsString, IsInt, IsNumber, IsIn, Min, Max, MaxLength } from "class-validator";
export class ServicePriceQueryDTO {
@IsOptional() @IsInt() @Min(1) page?: number = 1;
@IsOptional() @IsInt() @Min(1) @Max(200, { message: "分页大小不能超过 200 条" }) pageSize?: number = 10;
@IsOptional() @IsString() @MaxLength(64, { message: "关键词最大 64 字符" }) keyword?: string;
@IsOptional() @IsIn([1, 2, 3], { message: "计价方式非法" }) priceMode?: number;
@IsOptional() @IsString() @MaxLength(32) serviceType?: string;
@IsOptional() @IsIn([0, 1], { message: "状态值非法" }) status?: number;
}
export class ServicePriceCreateDTO {
@IsNotEmpty({ message: "价目名称不能为空" })
@IsString()
@MaxLength(64)
priceName!: string;
@IsNotEmpty({ message: "单价不能为空" })
@IsNumber({}, { message: "单价必须为数字" })
unitPrice!: number;
@IsOptional() @IsString() @MaxLength(32) serviceType?: string;
@IsOptional() @IsIn([1, 2, 3], { message: "计价方式非法" }) priceMode?: number;
@IsOptional() @IsString() @MaxLength(16) unit?: string;
@IsOptional() @IsIn([0, 1], { message: "状态值非法" }) status?: number;
@IsOptional() @IsString() @MaxLength(255) remark?: string;
}
export class ServicePriceUpdateDTO {
@IsOptional() @IsString() @MaxLength(64) priceName?: string;
@IsOptional() @IsString() @MaxLength(32) serviceType?: string;
@IsOptional() @IsIn([1, 2, 3], { message: "计价方式非法" }) priceMode?: number;
@IsOptional() @IsNumber({}, { message: "单价必须为数字" }) unitPrice?: number;
@IsOptional() @IsString() @MaxLength(16) unit?: string;
@IsOptional() @IsIn([0, 1], { message: "状态值非法" }) status?: number;
@IsOptional() @IsString() @MaxLength(255) remark?: string;
}