feat: enhance station work logging with user display names and improve loading/unloading logic

This commit is contained in:
Marshal
2026-08-27 02:29:50 +00:00
parent 058535d648
commit 6ec3c8c5e0
6 changed files with 271 additions and 33 deletions

View File

@@ -328,12 +328,32 @@ export interface WagonAllocationSnapshotAllocation {
containerNumbers: string[];
}
/**
* Coupled-but-empty consist wagon captured with the frozen plan. The physical
* wagons are released and re-pinned to later trains after dispatch/arrival, so
* this snapshot is the only record of which empties rode THIS departure.
*/
export interface WagonAllocationSnapshotEmptyWagon {
physicalWagonId: string;
physicalWagonNumber: string | null;
/** Real coupling position on the built train at capture time. */
sequenceNo: number;
wagonTypeId: string | null;
wagonTypeCode: string | null;
wagonTypeName: string | null;
capacityTons: number;
tareWeightTons: number | null;
lengthMeters: number;
}
/** Whole-schedule frozen wagon plan written at a terminal/transit transition. */
export interface WagonAllocationSnapshot {
/** Schedule status the snapshot was captured at (DISPATCHED/ARRIVED/CANCELLED). */
capturedStatus: string;
capturedAt: string;
slots: WagonAllocationSnapshotSlot[];
/** Absent on snapshots captured before empties were recorded. */
emptyConsistWagons?: WagonAllocationSnapshotEmptyWagon[];
}
export type ScheduleTradeDirection = "IMPORT" | "EXPORT" | "DOMESTIC";