Booking Flow
Tổng quan
Cohost hỗ trợ ba hình thức đặt phòng:
| Hình thức | Mô tả |
|---|---|
| Đặt theo đêm | Check-in/check-out theo ngày |
| Đặt trong ngày | Check-in và check-out trong cùng một ngày |
| Đặt theo giờ | Đặt theo số giờ tối thiểu |
Luồng đặt phòng
1. Tìm kiếm
GET /api/v1/search?location=...&check_in=...&check_out=...&guests=...
Trả về danh sách listing khả dụng theo tiêu chí tìm kiếm. Hệ thống tự động clustering các listing gần nhau thành combo khi không đủ listing đơn lẻ.
2. Xem chi tiết listing
GET /api/v1/listings/{listing_id}
GET /api/v1/listings/{listing_id}/availability
Kiểm tra lịch khả dụng và giá theo ngày/giờ.
3. Thêm vào giỏ hàng
POST /api/v1/cart
{
"listing_id": "uuid",
"check_in": "2025-03-01T14:00:00",
"check_out": "2025-03-03T12:00:00",
"guests": 2
}
4. Checkout
POST /api/v1/checkout
Hệ thống thực hiện Soft-Lock — khóa tạm thời inventory trong Redis để tránh overbooking trong quá trình thanh toán. Lock có thời hạn (mặc định 15 phút).
5. Xác nhận & Thanh toán
POST /api/v1/checkout/confirm
{
"payment_method": "...",
"guest_info": { ... }
}
Nếu thanh toán thành công → booking được tạo và inventory bị khóa vĩnh viễn.
Nếu thanh toán thất bại → Soft-Lock được giải phóng, inventory trở lại khả dụng.