airpredict/apps/api/src/materials/dto/create-material.dto.ts

39 lines
1.1 KiB
TypeScript

import { Type } from 'class-transformer';
import {
IsNumber,
IsObject,
IsOptional,
IsString,
Min,
ValidateNested,
} from 'class-validator';
export class EmissionParamDto {
@IsNumber() @Min(0) y0!: number;
@IsNumber() @Min(0) yp!: number;
@IsNumber() @Min(0) b!: number;
}
export class EmissionParamsDto {
@ValidateNested() @Type(() => EmissionParamDto) hcho!: EmissionParamDto;
@ValidateNested() @Type(() => EmissionParamDto) tvoc!: EmissionParamDto;
@ValidateNested() @Type(() => EmissionParamDto) benzene!: EmissionParamDto;
@ValidateNested() @Type(() => EmissionParamDto) toluene!: EmissionParamDto;
@ValidateNested() @Type(() => EmissionParamDto) xylene!: EmissionParamDto;
}
export class CreateMaterialDto {
@IsString() name!: string;
@IsString() category!: string;
@IsOptional() @IsString() brand?: string;
@IsOptional() @IsString() manufacturer?: string;
@IsOptional() @IsString() spec?: string;
@IsOptional() @IsString() envGrade?: string;
@IsOptional() @IsString() usageUnit?: string;
@IsObject()
@ValidateNested()
@Type(() => EmissionParamsDto)
emissionParams!: EmissionParamsDto;
}