API Đặt bàn Trước
Chức năng cho phép hội viên đặt bàn tại các chi nhánh nhà hàng trên ứng dụng zodutcan-user, theo dõi trạng thái các đơn đặt bàn (Chờ duyệt, Đã duyệt, Đã đến, Đã huỷ) và huỷ bàn khi cần.
1. Lấy Cấu hình Đặt bàn
Lấy thông tin cấu hình đặt bàn của chi nhánh hoặc hệ thống (khoảng thời gian hợp lệ, số lượng khách, quy định đặt cọc nếu có).
- Method:
GET - Endpoint:
/api/{locale}/v1/member/reservations/config - Auth:
auth:member_api(Bearer Token)
Response Thành công
{
"status": "success",
"data": {
"min_guests": 1,
"max_guests": 30,
"time_slots": [
"11:00", "11:30", "12:00", "12:30", "13:00",
"17:30", "18:00", "18:30", "19:00", "19:30", "20:00"
],
"lead_time_minutes": 60,
"deposit_required": false
}
}
2. Lấy Danh sách Đơn Đặt bàn của Hội viên
Lấy danh sách các đơn đặt bàn với phân trang và số lượng đếm tương ứng cho từng tab trạng thái trên giao diện app (all, pending, confirmed, arrived, cancelled).
- Method:
GET - Endpoint:
/api/{locale}/v1/member/reservations - Auth:
auth:member_api(Bearer Token)
Query Parameters
| Tham số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
page | integer | 1 | Trang hiện tại. |
per_page | integer | 15 | Số lượng bản ghi mỗi trang. |
date | string | null | Lọc theo ngày đặt bàn (YYYY-MM-DD). |
Response Thành công
{
"data": [
{
"id": "019b8d48-res-001",
"member_id": "019b8d48-97df-7177-8aa0-47f2107a8eb3",
"club_id": "019b8d48-club-hcm",
"quantity": 4,
"booking_time": "2026-05-25 18:30:00",
"notes": "Kỷ niệm sinh nhật, chuẩn bị bàn gần cửa sổ",
"status": "confirmed",
"created_at": "2026-05-21T10:00:00.000000Z",
"club": {
"id": "019b8d48-club-hcm",
"name": "Zodutcan Saigon Center",
"address": "65 Lê Lợi, Bến Nghé, Quận 1, TP.HCM"
}
}
],
"meta": {
"current_page": 1,
"per_page": 15,
"total": 4,
"last_page": 1,
"has_more": false,
"counts": {
"all": 4,
"pending": 1,
"confirmed": 2,
"arrived": 1,
"cancelled": 0
}
}
}
3. Tạo Yêu cầu Đặt bàn Mới
Gửi phiếu đặt bàn từ ứng dụng lên máy chủ.
- Method:
POST - Endpoint:
/api/{locale}/v1/member/reservations - Auth:
auth:member_api(Bearer Token)
Request Body
{
"booking_time": "2026-05-25 18:30:00",
"quantity": 4,
"notes": "Kỷ niệm sinh nhật, chuẩn bị bàn gần cửa sổ",
"contact_time": "2026-05-25 17:00:00"
}
Response Thành công
{
"message": "Tạo đặt bàn thành công",
"booking": {
"id": "019b8d48-res-001",
"member_id": "019b8d48-97df-7177-8aa0-47f2107a8eb3",
"quantity": 4,
"booking_time": "2026-05-25 18:30:00",
"notes": "Kỷ niệm sinh nhật, chuẩn bị bàn gần cửa sổ",
"status": "pending",
"created_at": "2026-05-21T10:00:00.000000Z"
}
}
4. Huỷ Đơn Đặt bàn
Hội viên huỷ đặt bàn trước giờ hẹn khi có thay đổi kế hoạch. Chỉ huỷ được khi đơn ở trạng thái pending hoặc confirmed.
- Method:
PUT - Endpoint:
/api/{locale}/v1/member/reservations/{id}/cancel - Auth:
auth:member_api(Bearer Token)
Response Thành công
{
"message": "Đã huỷ đặt bàn thành công",
"booking": {
"id": "019b8d48-res-001",
"status": "cancelled"
}
}