# POS Workflow Documentation | Tài liệu Quy trình POS

## Mục lục
1. [Tổng quan](#1-tổng-quan)
2. [Café - Quick Service](#2-café---quick-service)
3. [Restaurant - Full Service](#3-restaurant---full-service)
4. [Karaoke - Time-Based](#4-karaoke---time-based)
5. [Spa - Appointment Service](#5-spa---appointment-service)
6. [Payment Flow](#6-payment-flow)

---

## 1. Tổng Quan

### So sánh 4 mô hình

| Yếu tố | Café | Restaurant | Karaoke | Spa |
|--------|------|------------|---------|-----|
| **Thanh toán** | Trước | Sau | Sau | Sau |
| **Thời gian** | 5-10 phút | 30-90 phút | 1-4 giờ | 30-120 phút |
| **Đối tượng** | Counter | Bàn | Phòng | Khách + NV |
| **Tính năng đặc biệt** | Queue | Kitchen | Timer | Appointment |
| **Loyalty** | ✅ Optional | ✅ Optional | ✅ Optional | ✅ Required |

---

## 2. Café - Quick Service

### Workflow Diagram
```mermaid
flowchart TB
    subgraph CUSTOMER["👤 KHÁCH HÀNG"]
        A1[Đến quầy]
    end
    
    subgraph ORDER["📝 ORDER"]
        B1[Xem menu]
        B2[Chọn món]
        B3[Tùy chỉnh<br/>Size/Topping]
    end
    
    subgraph PAYMENT["💳 THANH TOÁN"]
        C1{Phương thức?}
        C2[Tiền mặt]
        C3[QR/Chuyển khoản]
        C4[Thẻ]
        C5[In bill + Số thứ tự]
    end
    
    subgraph PREPARE["☕ PHA CHẾ"]
        D1[Barista nhận order]
        D2[Pha chế]
        D3[Hoàn thành]
    end
    
    subgraph SERVE["🎉 PHỤC VỤ"]
        E1[Gọi số]
        E2[Khách nhận đồ]
        E3[Ra về]
    end
    
    A1 --> B1 --> B2 --> B3
    B3 --> C1
    C1 --> C2 & C3 & C4
    C2 & C3 & C4 --> C5
    C5 --> D1 --> D2 --> D3
    D3 --> E1 --> E2 --> E3
```

### Screens theo bước

| Bước | Screen | File |
|------|--------|------|
| Order | POS chính | `cafe/desktop.pen` |
| Payment | Chọn phương thức | `shared/payment/method-select.pen` |
| Payment | Tiền mặt | `shared/payment/cash.pen` |
| Payment | QR | `shared/payment/qr.pen` |
| Payment | Thành công | `shared/payment/success.pen` |
| Serve | Màn hình gọi số | `cafe/workflow/queue-display.pen` |

---

## 3. Restaurant - Full Service

### Workflow Diagram
```mermaid
flowchart TB
    subgraph ARRIVE["👤 KHÁCH ĐẾN"]
        A1[Vào nhà hàng]
        A2{Đặt bàn trước?}
        A3[Check-in đặt bàn]
        A4[Chọn bàn trống]
    end
    
    subgraph SEAT["🪑 NGỒI BÀN"]
        B1[Nhân viên dẫn bàn]
        B2[Mở order bàn]
    end
    
    subgraph ORDER["📝 ORDER ĐỢT 1"]
        C1[Xem menu]
        C2[Chọn món]
        C3[Gửi bếp]
    end
    
    subgraph KITCHEN["👨‍🍳 BẾP"]
        D1[Bếp nhận order]
        D2[Nấu món]
        D3[Món sẵn sàng]
        D4[Phục vụ ra bàn]
    end
    
    subgraph CONTINUE["🔄 TIẾP TỤC"]
        E1{Thêm món?}
        E2[Order đợt 2+]
    end
    
    subgraph CHECKOUT["💳 TÍNH TIỀN"]
        F1[Khách yêu cầu bill]
        F2[Xem lại bill]
        F3{Thanh toán}
        F4[Tiền mặt/QR/Thẻ]
        F5[In hóa đơn]
    end
    
    subgraph LEAVE["👋 RA VỀ"]
        G1[Đóng bàn]
        G2[Khách ra về]
    end
    
    A1 --> A2
    A2 -->|Có| A3
    A2 -->|Không| A4
    A3 & A4 --> B1 --> B2
    B2 --> C1 --> C2 --> C3
    C3 --> D1 --> D2 --> D3 --> D4
    D4 --> E1
    E1 -->|Có| E2 --> C2
    E1 -->|Không| F1
    F1 --> F2 --> F3 --> F4 --> F5
    F5 --> G1 --> G2
```

### Screens theo bước

| Bước | Screen | File |
|------|--------|------|
| Arrive | Sơ đồ bàn | `restaurant/workflow/table-map.pen` |
| Order | POS order bàn | `restaurant/desktop.pen` |
| Kitchen | Màn hình bếp | `restaurant/workflow/kitchen-display.pen` |
| Payment | Các màn thanh toán | `shared/payment/*.pen` |

### Trạng thái Order Item
- 🟡 **Chờ** - Vừa gửi bếp
- 🔵 **Đang làm** - Bếp nhận
- 🟢 **Xong** - Sẵn sàng phục vụ
- ✅ **Đã phục vụ** - Ra bàn

---

## 4. Karaoke - Time-Based

### Workflow Diagram
```mermaid
flowchart TB
    subgraph ARRIVE["👤 KHÁCH ĐẾN"]
        A1[Vào quán]
        A2[Xem sơ đồ phòng]
        A3[Chọn phòng trống]
    end
    
    subgraph OPEN["🚪 MỞ PHÒNG"]
        B1[Chọn thời lượng]
        B2[Mở phòng]
        B3[⏱️ Timer bắt đầu]
    end
    
    subgraph SESSION["🎤 TRONG PHÒNG"]
        C1[Hát karaoke]
        C2{Order đồ?}
        C3[Chọn đồ uống/ăn]
        C4[Gửi order]
    end
    
    subgraph EXTEND["⏰ GIA HẠN"]
        D1{Timer sắp hết?}
        D2[Thông báo 10p trước]
        D3{Gia hạn?}
        D4[Thêm thời gian]
    end
    
    subgraph CLOSE["🔒 ĐÓNG PHÒNG"]
        E1[Kết thúc session]
        E2[⏱️ Timer dừng]
        E3[Xem bill tổng]
    end
    
    subgraph PAYMENT["💳 THANH TOÁN"]
        F1[Tiền phòng + F&B]
        F2{Thanh toán}
        F3[Tiền mặt/QR/Thẻ]
        F4[In hóa đơn]
    end
    
    subgraph LEAVE["👋 RA VỀ"]
        G1[Reset phòng]
        G2[Khách ra về]
    end
    
    A1 --> A2 --> A3
    A3 --> B1 --> B2 --> B3
    B3 --> C1
    C1 --> C2
    C2 -->|Có| C3 --> C4 --> C1
    C2 -->|Không| D1
    D1 -->|Có| D2 --> D3
    D3 -->|Có| D4 --> C1
    D3 -->|Không| E1
    D1 -->|Không| C1
    E1 --> E2 --> E3
    E3 --> F1 --> F2 --> F3 --> F4
    F4 --> G1 --> G2
```

### Screens theo bước

| Bước | Screen | File |
|------|--------|------|
| Arrive | Sơ đồ phòng | `karaoke/workflow/room-map.pen` |
| Session | Chi tiết phòng + timer | `karaoke/workflow/room-session.pen` |
| Order | POS order đồ | `karaoke/desktop.pen` |
| Payment | Các màn thanh toán | `shared/payment/*.pen` |

### Tính giá phòng
```
Tiền phòng = Giá/giờ × Số giờ thực tế
- Block đầu: 2 giờ minimum
- Block sau: +30 phút/lần
- Peak hours (18h-22h T6-CN): ×1.5
- Happy hour (14h-17h T2-T5): -30%
```

---

## 5. Spa - Appointment Service

### Workflow Diagram
```mermaid
flowchart TB
    subgraph ARRIVE["👤 KHÁCH ĐẾN"]
        A1[Vào spa]
        A2{Có đặt lịch?}
        A3[Tìm khách hàng]
        A4[Check-in lịch hẹn]
        A5[Walk-in mới]
    end
    
    subgraph CUSTOMER["👥 KHÁCH HÀNG"]
        B1{Khách cũ?}
        B2[Tìm trong hệ thống]
        B3[Tạo khách mới]
        B4[Xem thông tin + VIP tier]
    end
    
    subgraph SERVICE["💆 CHỌN DỊCH VỤ"]
        C1[Xem danh sách dịch vụ]
        C2[Chọn dịch vụ]
        C3[Chọn nhân viên]
    end
    
    subgraph PERFORM["✨ THỰC HIỆN"]
        D1[Bắt đầu dịch vụ]
        D2[Thực hiện]
        D3[Hoàn thành]
    end
    
    subgraph CONTINUE["🔄 TIẾP TỤC"]
        E1{Thêm dịch vụ?}
        E2[Chọn dịch vụ tiếp]
    end
    
    subgraph CHECKOUT["💳 THANH TOÁN"]
        F1[Xem bill]
        F2{Dùng điểm?}
        F3[Trừ điểm loyalty]
        F4{Thanh toán}
        F5[Tiền mặt/QR/Thẻ]
        F6[+Tích điểm mới]
    end
    
    subgraph LEAVE["👋 RA VỀ"]
        G1{Đặt lịch lần sau?}
        G2[Tạo lịch hẹn]
        G3[Khách ra về]
    end
    
    A1 --> A2
    A2 -->|Có| A3 --> A4
    A2 -->|Không| A5
    A4 & A5 --> B1
    B1 -->|Có| B2 --> B4
    B1 -->|Không| B3 --> B4
    B4 --> C1 --> C2 --> C3
    C3 --> D1 --> D2 --> D3
    D3 --> E1
    E1 -->|Có| E2 --> C2
    E1 -->|Không| F1
    F1 --> F2
    F2 -->|Có| F3 --> F4
    F2 -->|Không| F4
    F4 --> F5 --> F6
    F6 --> G1
    G1 -->|Có| G2 --> G3
    G1 -->|Không| G3
```

### Screens theo bước

| Bước | Screen | File |
|------|--------|------|
| Customer | Tìm khách | `spa/workflow/customer-lookup.pen` |
| Service | POS chọn dịch vụ | `spa/desktop.pen` |
| Staff | Chọn nhân viên | `spa/workflow/staff-assign.pen` |
| Payment | Các màn thanh toán | `shared/payment/*.pen` |

### Loyalty System
```
Tích điểm: 1 điểm / 10,000₫
Đổi điểm: 100 điểm = 10,000₫

VIP Tiers:
- Silver: 500 điểm (giảm 5%)
- Gold: 2,000 điểm (giảm 10%) 
- Platinum: 5,000 điểm (giảm 15%)
```

---

## 6. Payment Flow

### Shared Payment Workflow
```mermaid
flowchart LR
    A[Chọn phương thức] --> B{Loại?}
    B -->|Tiền mặt| C[Nhập số tiền]
    B -->|QR| D[Hiển thị QR]
    B -->|Thẻ| E[Quẹt thẻ]
    C --> F[Tính tiền thối]
    D --> G[Chờ xác nhận]
    E --> H[Chờ máy POS]
    F & G & H --> I[Thành công]
    I --> J[In/Gửi hóa đơn]
    J --> K[Hoàn tất]
```

### Payment Screens

| Screen | Mô tả | File |
|--------|-------|------|
| Method Select | Chọn Cash/QR/Card | `method-select.pen` |
| Cash | Tính tiền thối | `cash.pen` |
| QR | VietQR/MoMo/ZaloPay | `qr.pen` |
| Success | Xác nhận thành công | `success.pen` |
| Receipt | Mẫu hóa đơn 80mm | `receipt.pen` |

---

## Tổng hợp Files

```
src/pages/tPOS/pos/
├── shared/payment/          # Dùng chung
│   ├── method-select.pen
│   ├── cash.pen
│   ├── qr.pen
│   ├── success.pen
│   └── receipt.pen
├── cafe/
│   ├── desktop.pen
│   ├── tablet.pen
│   ├── mobile.pen
│   └── workflow/
│       └── queue-display.pen
├── restaurant/
│   ├── desktop.pen
│   ├── tablet.pen
│   ├── mobile.pen
│   └── workflow/
│       ├── table-map.pen
│       └── kitchen-display.pen
├── karaoke/
│   ├── desktop.pen
│   ├── tablet.pen
│   ├── mobile.pen
│   └── workflow/
│       ├── room-map.pen
│       └── room-session.pen
└── spa/
    ├── desktop.pen
    ├── tablet.pen
    ├── mobile.pen
    └── workflow/
        ├── customer-lookup.pen
        └── staff-assign.pen
```

**Tổng: 24 files** (12 device variants + 12 workflow screens)
