import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { IsInt, IsNotEmpty, IsOptional, IsString, IsUUID, Max, MaxLength, Min, } from 'class-validator'; /** * A count-only wagon-transfer request. The requester picks source yard, wagon * type, destination yard and HOW MANY — never the specific wagons; OCC hand-picks * those at fulfilment. The quantity may not exceed the AVAILABLE wagons of that * type currently in the source yard (enforced in the service, which is the only * layer that can count them), and a reason is mandatory. */ export class CreateTransferRequestDto { @IsUUID() fromYardId!: string; @IsUUID() toYardId!: string; @IsUUID() wagonTypeId!: string; @IsInt() @Min(1) @Max(1000) quantity!: number; @ApiProperty({ description: 'Why the wagons are needed — shown on the OCC queue' }) @IsString() @IsNotEmpty() @MaxLength(2000) reason!: string; @ApiPropertyOptional({ description: 'Optional note for the fulfilling staff' }) @IsOptional() @IsString() note?: string; }