75 lines
1.4 KiB
TypeScript
75 lines
1.4 KiB
TypeScript
import { IsString, IsOptional, IsNumber, ValidateIf } from 'class-validator';
|
|
import { Transform } from 'class-transformer';
|
|
|
|
export class CreateComposantDto {
|
|
@IsString()
|
|
name: string;
|
|
|
|
@ValidateIf((dto) => !dto.parentComposantId)
|
|
@IsString()
|
|
machineId?: string;
|
|
|
|
@ValidateIf((dto) => !dto.machineId)
|
|
@IsString()
|
|
parentComposantId?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
reference?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
constructeurId?: string;
|
|
|
|
@IsOptional()
|
|
@Transform(({ value }) => (value === '' ? null : value))
|
|
@IsNumber({}, { message: 'prix must be a valid number' })
|
|
prix?: number | null;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
emplacement?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
typeComposantId?: string;
|
|
|
|
@IsString()
|
|
typeMachineComponentRequirementId: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
composantModelId?: string;
|
|
}
|
|
|
|
export class UpdateComposantDto {
|
|
@IsOptional()
|
|
@IsString()
|
|
name?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
reference?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
constructeurId?: string;
|
|
|
|
@IsOptional()
|
|
@Transform(({ value }) => (value === '' ? null : value))
|
|
@IsNumber({}, { message: 'prix must be a valid number' })
|
|
prix?: number | null;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
emplacement?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
typeComposantId?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
composantModelId?: string;
|
|
}
|