mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-30 06:28:12 +00:00
add dispute functionality for contract duty and implement collection dates
This commit is contained in:
@@ -2,6 +2,7 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
||||
import { Transform, Type } from 'class-transformer';
|
||||
import {
|
||||
IsArray,
|
||||
IsIn,
|
||||
IsInt,
|
||||
IsNumber,
|
||||
IsOptional,
|
||||
@@ -91,6 +92,15 @@ export class CreateBookingRequestDto {
|
||||
@Type(() => RequestBulkLineDto)
|
||||
bulk?: RequestBulkLineDto;
|
||||
|
||||
@ApiPropertyOptional({
|
||||
enum: ['ETB', 'USD'],
|
||||
description:
|
||||
'Billing currency for the shipment GL will book. Intercity is always ETB.',
|
||||
})
|
||||
@IsOptional()
|
||||
@IsIn(['ETB', 'USD'])
|
||||
paymentCurrency?: string;
|
||||
|
||||
@ApiPropertyOptional()
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
|
||||
@@ -15,6 +15,8 @@ import {
|
||||
ValidateNested,
|
||||
} from 'class-validator';
|
||||
|
||||
import { PAYMENT_CURRENCIES } from './create-contract.dto';
|
||||
|
||||
/** Per-shipment equipment return — "NA" stays contract-level only. */
|
||||
const SHIPMENT_EQUIPMENT_RETURNS = ['WITH_RETURN', 'WITHOUT_RETURN'] as const;
|
||||
|
||||
@@ -150,6 +152,20 @@ export class CreateBookingUnderContractDto {
|
||||
@IsUUID()
|
||||
contractRouteId?: string;
|
||||
|
||||
/**
|
||||
* The contract quotes in USD; the customer picks the billing currency here.
|
||||
* Omitted → the contract's own currency (USD for contracts created under the
|
||||
* current rule, the grandfathered currency for older ones). Intercity is
|
||||
* forced to ETB by the service regardless of what is sent.
|
||||
*/
|
||||
@ApiPropertyOptional({
|
||||
enum: PAYMENT_CURRENCIES,
|
||||
description: 'Billing currency for this shipment. Intercity is always ETB.',
|
||||
})
|
||||
@IsOptional()
|
||||
@IsIn([...PAYMENT_CURRENCIES])
|
||||
paymentCurrency?: string;
|
||||
|
||||
@ApiPropertyOptional({
|
||||
description:
|
||||
'Binding shipment day. Omitted for intercity (DOMESTIC) bookings — staff assign a passing train later.',
|
||||
|
||||
@@ -158,9 +158,20 @@ export class CreateContractDto {
|
||||
@IsUUID()
|
||||
serviceTypeId!: string;
|
||||
|
||||
@ApiProperty({ enum: PAYMENT_CURRENCIES })
|
||||
/**
|
||||
* Deprecated at the contract level. A contract now always quotes in USD; the
|
||||
* customer picks the billing currency per booking (or on the shipment request
|
||||
* when GL books on their behalf). Accepted but ignored on create so older
|
||||
* clients don't break — the service forces USD.
|
||||
*/
|
||||
@ApiPropertyOptional({
|
||||
enum: PAYMENT_CURRENCIES,
|
||||
deprecated: true,
|
||||
description: 'Ignored — contracts always quote in USD. Choose currency at booking.',
|
||||
})
|
||||
@IsOptional()
|
||||
@IsIn([...PAYMENT_CURRENCIES])
|
||||
paymentCurrency!: string;
|
||||
paymentCurrency?: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Whether EDR/GL handles customs clearance' })
|
||||
@IsOptional()
|
||||
|
||||
Reference in New Issue
Block a user