Files
Ho Ngoc Hai 76d75c753b Migrate
2026-05-23 18:37:02 +07:00

2.1 KiB

Kiến Trúc F&B Engine

Tài liệu kiến trúc cho F&B Engine.

Tổng Quan Kiến Trúc

graph TB
    subgraph "Tầng API"
        TC[TableController]
        SC[SessionController]
        KC[KitchenController]
    end
    
    subgraph "Tầng Domain"
        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

Luồng Hiển Thị Bếp

sequenceDiagram
    participant Order as Order Service
    participant FnB as F&B Engine
    participant KDS as Màn Hình Bếp
    
    Order->>FnB: KitchenTicketCreated Event
    FnB->>FnB: Lưu Phiếu
    KDS->>FnB: Lấy Phiếu Chờ
    FnB-->>KDS: Danh Sách Phiếu
    
    Note over KDS: Đầu bếp chuẩn bị đơn
    
    KDS->>FnB: Cập Nhật Trạng Thái (Xong)
    FnB->>Order: TicketCompleted Event

Table State Machine

stateDiagram-v2
    [*] --> Available
    Available --> Occupied: Mở Phiên
    Occupied --> Available: Đóng Phiên
    Available --> Reserved: Đặt Trước
    Reserved --> Occupied: Khách Đến
    Reserved --> Available: Hủy

Tài Nguyên