page.transportation.booking-workspace — Booking Workspace¶
- Page contract version:
1 - Canonical route:
/bookings/{id}and/bookings/new - Template: native shared
WorkspaceDialogwith compact Booking panels - Primary context: one authoritative Booking and independent related facts
- Profiles/capabilities/roles: current Legacy
tms.bookingserver decision; no browser profile branch - Query/read-model owner:
bookingClient.ts→ semantic Booking routes →MysqlCompanyBookingData - Command/action owners: native Booking, Packing List, Booking Confirmation, clone and equipment owners; file/AI actions remain separate consumers
- Independent states: Booking, containers, delivery orders, packing-list submission and invoice status
- Fields/default/requiredness provenance: native
booking-data.tsand current UI defaults; Stage-A packet is historical Legacy provenance, including a different Shipper requirement - Loading/empty/error/denied/not-found/recovery:
useBookingWorkspaceStateandbookingRecovery; unknown-result exact UUID readback before replay - Desktop/mobile/keyboard/accessibility: shared
@ctc/uidialog, form and command controls; exact responsive/keyboard evidence remains scenario-scoped - Telemetry/readback: normal response contains transaction readback; sent mutation with unknown result triggers separate UUID GET
- Legacy parity/intended difference: source-specific requirements and native gaps are in the traditional Process specification; no blanket field/action parity claim
- Route/writer cutover: none
- Measurable user value: one workspace supports create, edit, save confidence and timeout recovery
- Sources/freshness: native Booking UI/API/query/writer reviewed at
0393adae1eb9e43eb32f0b736120119b46e056cbon 2026-09-12; SOURCE, not fresh runtime acceptance - Runtime scenario source:
docs/pages/transportation/booking-workspace/TEST_MATRIX.md - Runtime scenario IDs:
SCN-010,SCN-020,SCN-030,SCN-040,SCN-050,SCN-055,SCN-057,SCN-058,SCN-090,SCN-100 - In-app User Wiki ID:
wiki.page.transportation.booking-workspace - In-app User Wiki: stored page
/wiki/booking; verify its UUID and content through the actual catalogue consumer - User Wiki route:
/wiki/booking - Page change history:
docs/pages/transportation/booking-workspace/CHANGELOG.md - Latest change ID:
PAGE-BOOKING-WORKSPACE-CHG-010
Traditional screen specification and Client basis¶
Booking SRS/SAD/state/data relationships defines C1 from Legacy and C2 from reference plus New-System. This Page describes the native screen; it is not a substitute for either source's business requirements. C1 manual/Wiki deferral does not defer its technical specification.
| Screen area / action | Data and interaction requirement | Acceptance boundary |
|---|---|---|
| Open/create | one Booking UUID or new UUID-backed draft; use current session/profile defaults | loading, denied, missing and error are distinct; no unrelated tenant fallback |
| Details | reservation/carrier, schedule/routing, quantity plan, Company references and document/inspection flags | exact field constraints in Transportation dictionary; usage/source pointer are read-only context |
| Save | explicit submission; preserve later local edits when acknowledgement arrives | normal transaction result vs unknown-result GET distinguished; conflict/unknown cannot silently overwrite |
| Close | include independent related-panel drafts in dirty decision | confirmation before discarding; switching panels is not saving |
| Packing / Confirmation | source-policy projection; separately saved rows/rates vs preview-only text | Restore does not undo source metadata; preview/Print is not document delivery |
| Clone | persisted Booking only; quantity1–9 and new request/record identities | parent's unsaved draft is not a saved clone source; receipt recovery is separate |
| File / AI | separate upload/analysis owners; apply suggestions to draft | provider success is not Booking persistence; photos are not a native Booking tab |
C2 reference uses one SIZE/QUANTITY, Supplier/Shipper-specific roles and date-derived display status. Native five-quantity plan, Company roles and independent flags must not be labelled exact C2 parity until the corresponding differences in the Process are resolved. Responsive/keyboard/role scenarios remain separately executable acceptance, not inferred from use of shared components.
Current create/update path¶
BookingWorkspace and useBookingWorkspaceState call bookingClient at /api/bookings.
semanticBookingRoutes resolves session/Booking access and invokes the native parser in booking-data.ts.
MysqlCompanyBookingData owns the tenant-scoped transaction, version conflict and readback. A normal
response returns the transaction's read result after commit; an unknown result is separately reread
by UUID. The list opens the same native editor for create/edit. Form options still use the separate
/api/tms/bookings/options compatibility route; that does not make native saves Legacy writes.
See the Transportation developer contract for actual owner paths, input/DB mapping, transaction sequence, error/retry rules and tests. That contract owns the technical details; this Page owns the interaction below.
Draft and related-area behavior¶
- Details, Packing List and policy-enabled Booking Confirmation are the current areas. Visited Packing/Confirmation panels stay mounted while hidden, preserving their drafts.
- Dirty tracking combines Booking draft and equipment/Packing/Confirmation areas. Close asks before discarding unsaved changes. Save responses merge untouched server values without erasing edits made after submission; responses from an old workspace session are ignored.
CONFLICTdisables submit and exposesReload latest.UNRESOLVEDdisables submit and exposesCheck saved result; a failed reread does not become safe-to-retry automatically.- A missing create UUID permits retry of the same request identity. A missing update or mismatched version/content does not prove failure or authorize blind replay.
- Clone is available for a persisted Booking, accepts count 1–9 in the current dialog and sends an empty override object. It does not save/overwrite the parent Booking draft.
- Booking Photos is not a current tab/action. Equipment-photo backend/client functions and older runtime screenshots are not evidence that it is exposed here.
Documentation scope and evidence¶
The test matrix keeps the original 2026-08-15 KJ observations separate from native source checks and later Task evidence. No old control count or Photos PASS is a current acceptance. Manual/User Wiki expansion is Client ID 2 only. Client ID 1 is undecided and its existing content and exposure are preserved; common developer documentation does not approve its operator procedure.
---¶
Source:
new-system/docs/pages/transportation/booking-workspace/README.md— ctc repository · This page is an English translation of the source document. Identifiers, file paths and code symbols are unchanged.