import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { DeviceStatus } from '../../generated/prisma/enums.js'; import { Type } from 'class-transformer'; import { IsEnum, IsInt, IsOptional, IsString, Min } from 'class-validator'; /** * 创建设备 DTO。 */ export class CreateDeviceDto { @ApiProperty({ description: '设备 SN', example: 'TYT-SN-10001' }) @IsString({ message: 'snCode 必须是字符串' }) snCode!: string; @ApiProperty({ description: '当前压力值', example: 120 }) @Type(() => Number) @IsInt({ message: 'currentPressure 必须是整数' }) @Min(0, { message: 'currentPressure 必须大于等于 0' }) currentPressure!: number; @ApiPropertyOptional({ description: '设备状态,默认 ACTIVE', enum: DeviceStatus, example: DeviceStatus.ACTIVE, }) @IsOptional() @IsEnum(DeviceStatus, { message: 'status 枚举值不合法' }) status?: DeviceStatus; @ApiProperty({ description: '归属患者 ID', example: 1 }) @Type(() => Number) @IsInt({ message: 'patientId 必须是整数' }) @Min(1, { message: 'patientId 必须大于 0' }) patientId!: number; }