2.1 KiB
2.1 KiB
F&B Engine Architecture
Architecture documentation for F&B Engine.
Architecture Overview
graph TB
subgraph "API Layer"
TC[TableController]
SC[SessionController]
KC[KitchenController]
end
subgraph "Domain Layer"
T[Table]
S[Session]
KT[KitchenTicket]
end
subgraph "Infrastructure"
DB[(PostgreSQL)]
EB[Event Bus]
end
TC --> T
SC --> S
KC --> KT
S --> T
KT --> S
T --> DB
KT --> EB
style T fill:#50c878,stroke:#2d8659,color:#fff
style S fill:#3498db,stroke:#2980b9,color:#fff
Database Schema
erDiagram
tables {
uuid id PK
uuid shop_id FK
varchar table_number
int capacity
varchar zone
varchar status
}
sessions {
uuid id PK
uuid table_id FK
timestamp started_at
timestamp closed_at
int guest_count
varchar status
}
kitchen_tickets {
uuid id PK
uuid session_id FK
uuid order_item_id FK
varchar station
int priority
varchar status
timestamp created_at
}
tables ||--o{ sessions : has
sessions ||--o{ kitchen_tickets : contains
Kitchen Display Flow
sequenceDiagram
participant Order as Order Service
participant FnB as F&B Engine
participant KDS as Kitchen Display
Order->>FnB: KitchenTicketCreated Event
FnB->>FnB: Save Ticket
KDS->>FnB: Poll Pending Tickets
FnB-->>KDS: Ticket List
Note over KDS: Chef prepares order
KDS->>FnB: Update Status (Done)
FnB->>Order: TicketCompleted Event
Table State Machine
stateDiagram-v2
[*] --> Available
Available --> Occupied: Open Session
Occupied --> Available: Close Session
Available --> Reserved: Reserve
Reserved --> Occupied: Guest Arrived
Reserved --> Available: Cancel