mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-08 21:48:18 +00:00
Add booking window management and locomotive scheduling features
- Implemented migration to release stuck assigned locomotives. - Added schedule window phases to train schedules. - Created booking batch offers table for partial capacity bookings. - Developed BookingSplitService to handle partial booking offers and splits. - Introduced BookingWindowService to manage booking window lifecycle and transitions. - Added BookingBatchOffer entity to represent offers made during booking splits. - Enhanced locomotive options with warnings for scheduling. - Created UpcomingWindowsSection component to display upcoming booking windows.
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
/**
|
||||
* Booking-window timings sourced from the train_scheduling_global_rules singleton,
|
||||
* with hardcoded fallbacks when the row is missing (see TrainSchedulingService.getWindowConfig).
|
||||
*/
|
||||
export interface BookingWindowConfig {
|
||||
/** Days before departure the single import booking-window day falls on. */
|
||||
importWindowLeadDays: number;
|
||||
/** Hours before departure an export booking becomes acceptable (FCFS). */
|
||||
exportBookingLeadHours: number;
|
||||
/** Local (Africa/Addis_Ababa) hour at which the import window opens. */
|
||||
windowOpenHour: number;
|
||||
windowDurationHours: number;
|
||||
/** Max staff document-review time after the window closes. */
|
||||
docReviewMinutes: number;
|
||||
paymentWindowMinutes: number;
|
||||
/** Delay after window close before reopening when the train is not full. */
|
||||
reopenDelayMinutes: number;
|
||||
}
|
||||
|
||||
/** Window phase lifecycle for the one-booking-day import cycle. NULL on legacy/DOMESTIC schedules. */
|
||||
export const WINDOW_PHASES = [
|
||||
'PRE_WINDOW',
|
||||
'OPEN',
|
||||
'DOC_REVIEW',
|
||||
'PAYMENT',
|
||||
'CLOSED_FOR_DAY',
|
||||
'DONE',
|
||||
] as const;
|
||||
|
||||
export type WindowPhase = (typeof WINDOW_PHASES)[number];
|
||||
Reference in New Issue
Block a user