enhance booking and contract management features

- Added support for comma-separated ops-clearance lifecycle statuses in contracts service.
- Display reference number in Upcoming Windows section if available.
- Updated badge label for document requirements in constants.
- Improved logic for identifying phased bookings in BookingClearanceWorkflowBanner.
- Introduced tabs in ReadonlyBookingView for better organization of booking details.
- Enhanced KeyFactsStrip to reflect the general nature of drawdown bookings.
- Updated status titles and descriptions for clarity in StatusHero and constants.
- Added contractKind field to IBooking interface for better identification of booking types.
- Created DocumentsTab component to manage and display all relevant documents for bookings.
This commit is contained in:
Marshal
2026-07-13 06:43:17 +00:00
parent e7e5b93ffc
commit 95b17b2729
14 changed files with 1149 additions and 275 deletions

View File

@@ -497,6 +497,12 @@ export interface IBooking extends BaseEntity {
trainScheduleStatus?: TrainScheduleStatus | string | null;
/** ONE_TIME for normal bookings; GENERAL_CONTRACT for umbrella contracts. */
bookingType?: BookingType;
/**
* Denormalized kind of the parent contract (ONE_TIME | GENERAL). Drawdown
* bookings under a GENERAL contract keep bookingType = ONE_TIME, so this is
* the field UIs must read to label a booking "General".
*/
contractKind?: `${import("./contracts").ContractKind}` | null;
/** General contracts only: when ordering closes (null until active / for one-time). */
expiresAt?: string | null;
/** Null for general contracts at creation — the date is chosen per order. */