Files
pos-system/services/fnb-engine-net/docs/vi/README.md

116 lines
3.4 KiB
Markdown

# 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
```mermaid
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
```bash
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
```csharp
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
```csharp
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
```csharp
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](../../order-service-net/docs/vi/README.md) - Sử dụng FnbStrategy
- [Inventory Service](../../inventory-service-net/docs/vi/README.md) - Trừ nguyên liệu
- [Catalog Service](../../catalog-service-net/docs/vi/README.md) - Mặt hàng menu
## License
Proprietary - GoodGo Platform