BookingTài nguyên Booking
Danh sách Học viên
Lấy danh sách các học viên (khách hàng) của Chuyên viên/Chuyên gia, nhóm theo Nhóm dịch vụ với thông tin khách hàng và gói dịch vụ đã enrich. Dữ liệu được lấy từ BookingEntitlement dựa trên primary_booking_resource_id.
Endpoint
GET /v1/bookingresources/members
Mô tả
API này trả về danh sách các học viên (khách hàng) được gán cho Chuyên viên/Chuyên gia hiện tại đang đăng nhập.
Cơ chế hoạt động:
- Xác định
BookingResourcecủa user hiện tại thông quaBookingResourceAssignment - Lấy tất cả
BookingEntitlementcóprimary_booking_resource_id= ID của resource đó - Enrich thông tin khách hàng và gói dịch vụ
- Nhóm kết quả theo
BookingCatalog
Query Parameters
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
keyword | string | Tìm kiếm theo tên khách hàng. | |
fstatus | int | Lọc theo trạng thái entitlement (mặc định 1 - Active). | |
booking_catalog_id | int | Lọc theo ID nhóm dịch vụ. | |
page | int | Trang hiện tại (mặc định 1). | |
limit | int | Số bản ghi mỗi trang (mặc định 50). | |
sortby | string | Sắp xếp theo cột (mặc định id). | |
sorttype | string | Thứ tự sắp xếp (ASC hoặc DESC, mặc định DESC). |
Response Schema
HTTP 200 - JSON Object
{
"total": 25,
"currentpage": 1,
"limit": 50,
"items": [
{
"company_id": 1,
"creator_id": 1,
"id": 10001,
"name": "Tăng cơ",
"type": 1,
"pre_session_attribute_category_id": 0,
"post_session_attribute_category_id": 0,
"rule_mapping": {
"deduct_mode": 1,
"deduct_unit": 1,
"deduct_timing": 1,
"use_real_time": false,
"require_resource": true,
"resource_mode": 1,
"allow_overuse": false
},
"date_created": 1738227600,
"date_modified": 1738227600,
"booking_entitlements": [
{
"company_id": 10311,
"creator_id": 1,
"id": 10014,
"customer_id": 133,
"sales_order_id": 1001,
"sales_order_detail_id": 2001,
"booking_catalog_id": 10001,
"booking_package_id": 10002,
"primary_booking_resource_id": 5,
"secondary_booking_resource_id": 0,
"limit_store_id_list": "",
"total_credits": 24,
"used_credits": 5,
"remaining_credits": 19,
"status": 1,
"date_started": 1738227600,
"date_ended": 1740905999,
"date_created": 1738227600,
"date_modified": 1738227600,
"customer_name": "Cao Minh Tuấn",
"customer_avatar": "https://...",
"customer_phone": "0987654321",
"customer_email": "[email protected]",
"booking_package_name": "Gói tập 10 ngày 60 phút"
}
]
}
]
}Fields Description
items (Grouped by Nhóm dịch vụ)
Mỗi item là một Nhóm dịch vụ (BookingCatalog) đầy đủ với danh sách hạn mức khách hàng.
| Field | Mô tả |
|---|---|
id | ID của Nhóm dịch vụ |
name | Tên nhóm dịch vụ |
type | Loại nhóm dịch vụ |
rule_mapping | Cấu hình quy tắc tính hạn mức |
booking_entitlements | Mảng các hạn mức khách hàng thuộc nhóm dịch vụ này |
booking_entitlements (Enriched Data)
Mỗi hạn mức được enrich thêm các field:
| Field | Kiểu | Mô tả |
|---|---|---|
id | int | ID của BookingEntitlement |
customer_id | int | ID khách hàng |
booking_catalog_id | int | ID nhóm dịch vụ |
booking_package_id | int | ID gói dịch vụ |
primary_booking_resource_id | int | ID chuyên viên/chuyên gia phụ trách |
total_credits | int | Tổng hạn mức của gói |
used_credits | int | Hạn mức đã sử dụng |
remaining_credits | int | Hạn mức còn lại |
status | int | Trạng thái entitlement |
date_started | int | Ngày bắt đầu hiệu lực (timestamp) |
date_ended | int | Ngày kết thúc hiệu lực (timestamp) |
customer_name | string | Tên đầy đủ của khách hàng (enriched) |
customer_avatar | string | Avatar của khách hàng (enriched) |
customer_phone | string | Số điện thoại khách hàng (enriched) |
customer_email | string | Email khách hàng (enriched) |
booking_package_name | string | Tên gói dịch vụ (enriched) |
Entitlement Status Values
| Value | Mô tả |
|---|---|
1 | Đang hoạt động (Active) |
3 | Không hoạt động (Inactive) |
5 | Đã hết hạn (Expired) |
Error Codes
| HTTP | Code | Mô tả |
|---|---|---|
| 401 | ERR_AUTH_REQUIRED | Thiếu token xác thực |
| 403 | ERR_NO_PERMISSION | Không có quyền truy cập |
| 500 | ERR_INTERNAL | Lỗi máy chủ |
Notes
- API sử dụng implicit staff identity mapping: User ID của người đăng nhập được map sang
BookingResourcethông quaBookingResourceAssignment - Nếu user chưa được assign vào bất kỳ
BookingResourcenào, API sẽ trả về danh sách rỗng - Filter
primary_booking_resource_idđược sử dụng để lọc các entitlement thuộc về chuyên viên/chuyên gia hiện tại