mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-07 13:05:44 +00:00
"Auto Load Ready Items" now opens a train picker (pre-dispatch trains with these bookings assigned, via the existing loadable-trains flow). No train available -> no auto-loading, with a clear notice. Loading goes through the existing per-wagon load path, so items without an allocated wagon are skipped with a reason. The train association is stored on the existing warehouse_loadings table (no new table needed): new train_schedule_id column + a note recording train number, origin -> destination, and departure time; wagon_id becomes nullable. The trainless load-passed-export endpoint, its frontend wiring, and the unused useLoadPassedExport hook are removed. Migration 2100000000000 (idempotent) also applied to the dev database. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
31 lines
805 B
TypeScript
31 lines
805 B
TypeScript
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
import { IsNumber, IsOptional, IsString, IsUUID, MaxLength, Min } from 'class-validator';
|
|
|
|
export class LoadInventoryDto {
|
|
@ApiProperty({ format: 'uuid', description: 'Physical wagon the item is loaded onto' })
|
|
@IsUUID()
|
|
wagonId!: string;
|
|
|
|
@ApiPropertyOptional({ format: 'uuid', description: 'Train schedule this load belongs to (recorded on the loading).' })
|
|
@IsOptional()
|
|
@IsUUID()
|
|
trainScheduleId?: string;
|
|
|
|
@ApiPropertyOptional({ description: 'Weight loaded onto the wagon (t)' })
|
|
@IsOptional()
|
|
@IsNumber()
|
|
@Min(0)
|
|
loadedWeight?: number;
|
|
|
|
@ApiPropertyOptional()
|
|
@IsOptional()
|
|
@IsString()
|
|
@MaxLength(120)
|
|
loadedBy?: string;
|
|
|
|
@ApiPropertyOptional()
|
|
@IsOptional()
|
|
@IsString()
|
|
notes?: string;
|
|
}
|