sinka/api/src/carriers/dto/upsert-carrier.dto.ts
armando 8e4203e4c9 sinka
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 03:56:18 -03:00

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