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
- Order Service - Sử dụng FnbStrategy
- Inventory Service - Trừ nguyên liệu
- Catalog Service - Mặt hàng menu
License
Proprietary - GoodGo Platform