45 lines
1.2 KiB
Markdown
45 lines
1.2 KiB
Markdown
# Restaurant Lifecycle Store
|
|
|
|
Related Master Plan: `plan/2026-03-31-s44-master-shared-restaurant-lifecycle.md`
|
|
|
|
## Purpose
|
|
|
|
`operations-dal` persists the shared restaurant order and check state that waiter, customer, kitchen, and POS flows will operate on together.
|
|
|
|
## Persisted Shapes
|
|
|
|
### Order and Check Record
|
|
|
|
The lifecycle store keeps one shared record per restaurant order containing:
|
|
- `ContextId`
|
|
- `OrderId`
|
|
- `CheckId`
|
|
- `TableId`
|
|
- `OrderState`
|
|
- `CheckState`
|
|
- `GuestCount`
|
|
- `HasKitchenTicket`
|
|
- `OutstandingBalance`
|
|
- `Currency`
|
|
- `Source`
|
|
- `ItemIds`
|
|
- `UpdatedAtUtc`
|
|
|
|
### Event History
|
|
|
|
The store also keeps an append-only event stream per order so services and BFFs can expose recent lifecycle activity without synthesizing it from isolated arrays.
|
|
|
|
## Query Shape
|
|
|
|
The DAL exposes internal access patterns for:
|
|
- load one order by context and order id
|
|
- list orders by context
|
|
- list payable orders by context
|
|
- append and list lifecycle events by order
|
|
|
|
## Ownership Boundary
|
|
|
|
- `operations-domain` owns the lifecycle rules.
|
|
- `operations-dal` owns durable storage for the shared restaurant order/check state.
|
|
- `kitchen-dal` will persist kitchen ticket execution separately while sharing the restaurant identities.
|