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; }