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

F&B Engine

Quản lý bàn, phiên ăn uống và hiển thị bếp cho ngành thực phẩm và đồ uống.

Tổng Quan

F&B Engine xử lý các yêu cầu đặc thù của nhà hàng và quán cafe: bố trí bàn, phiên khách hàng, và hệ thống hiển thị bếp (KDS) để chuẩn bị đơn hàng.

Tính Năng Chính

  • Quản lý Bàn - Sơ đồ, trạng thái bàn, sức chứa
  • Theo dõi Phiên - Phiên khách hàng theo bàn
  • Hệ thống Hiển thị Bếp - Phiếu đơn hàng tới các trạm bếp
  • Thao tác Bàn - Gộp, tách, chuyển bàn

Bối Cảnh Kiến Trúc

graph LR
    ORDER["📝 Order Service"] --> FNB["🍳 F&B Engine"]
    FNB --> INVENTORY["🏭 Inventory Service"]
    POS["POS"] --> FNB
    KDS["Màn Hình Bếp"] --> FNB
    
    style FNB fill:#f39c12,stroke:#d68910,color:#fff

Bắt Đầu Nhanh

cd services/fnb-engine-net
cp .env.example .env
dotnet run --project src/FnbEngine.API

API Endpoints

Quản Lý Bàn

Method Endpoint Mô tả
GET /api/v1/tables Danh sách bàn theo shop
POST /api/v1/tables Tạo bàn
PUT /api/v1/tables/{id} Cập nhật bàn
PATCH /api/v1/tables/{id}/status Đổi trạng thái
POST /api/v1/tables/merge Gộp bàn
POST /api/v1/tables/split Tách bàn

Phiên

Method Endpoint Mô tả
POST /api/v1/sessions Mở phiên
GET /api/v1/sessions/{id} Chi tiết phiên
POST /api/v1/sessions/{id}/close Đóng phiên
POST /api/v1/sessions/{id}/transfer Chuyển bàn

Hiển Thị Bếp

Method Endpoint Mô tả
GET /api/v1/kitchen/tickets Danh sách phiếu chờ
PATCH /api/v1/kitchen/tickets/{id}/status Cập nhật trạng thái phiếu
GET /api/v1/kitchen/stations Danh sách trạm bếp

Domain Model

Table

public class Table : Entity, IAggregateRoot
{
    public Guid ShopId { get; private set; }
    public string TableNumber { get; private set; }
    public int Capacity { get; private set; }
    public string Zone { get; private set; }
    public TableStatus Status { get; private set; } // Available, Occupied, Reserved
}

Session

public class Session : Entity, IAggregateRoot
{
    public Guid TableId { get; private set; }
    public DateTime StartedAt { get; private set; }
    public DateTime? ClosedAt { get; private set; }
    public int GuestCount { get; private set; }
    public SessionStatus Status { get; private set; }
}

KitchenTicket

public class KitchenTicket : Entity
{
    public Guid SessionId { get; private set; }
    public Guid OrderItemId { get; private set; }
    public string Station { get; private set; } // Bar, Kitchen, Grill
    public int Priority { get; private set; }
    public TicketStatus Status { get; private set; } // Pending, InProgress, Done
}

Services Liên Quan

License

Proprietary - GoodGo Platform