51 lines
935 B
TypeScript
51 lines
935 B
TypeScript
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;
|
|
}
|