import { Transform } from 'class-transformer'; import { IsBoolean, IsNumber, IsOptional, IsString, Max, MaxLength, Min, MinLength } from 'class-validator'; const toNumber = ({ value }: { value: unknown }) => (value === '' || value === null || value === undefined ? value : Number(value)); export class UpsertCarrierDto { @IsString() @MinLength(2) @MaxLength(120) name!: string; @IsOptional() @IsString() @MaxLength(20) document?: string; @IsOptional() @IsString() @MaxLength(20) phone?: string; @IsOptional() @Transform(toNumber) @IsNumber() @Min(0) baseFee?: number; @IsOptional() @Transform(toNumber) @IsNumber() @Min(0) pricePerKg?: number; @IsOptional() @Transform(toNumber) @IsNumber() @Min(0) pricePerKm?: number; @IsOptional() @Transform(toNumber) @IsNumber() @Min(0) @Max(1) adValoremRate?: number; @IsOptional() @IsBoolean() active?: boolean; }