Booking Status List
Attribute Reference
The following attributes and columns determine the status logic:
active?→ Indicates if the booking is currently valid and open.ack?→ (Acknowledged) Indicates if the restaurant or system has confirmed the booking.is_temporary?→ true when booking not paid for prepaid type bookingprepared?→ Indicates if the order is currently being prepared (for H@H package).adjusted?→ Was the booking modified?no_show→ Customer failure to arrivearrived→ Customer physical check-inrefund→ Indicates if booking have refund guarantee

Detailed Condition Summary
1. Initial State Checks
:waiting_for_payment→ Assigned if the booking is active and in a temporary state, such as during a payment flow.:no_show→ Assigned if the booking is flagged as a no-show.:arrived→ Assigned if the customer has arrived.
2. Unacknowledged Active Bookings
If the booking is active but not yet acknowledged (active? && !ack?):
:cancelled→ Assigned if the cancellation was initiated by the user.:rejected→ Assigned in all other unacknowledged cases, such as a restaurant rejection.
3. Inactive Bookings
If the booking is no longer active (!active?):
:cancel_modified→ Assigned if the booking was modified or changed.:cancelled_with_refund→ Assigned if a refund process was initiated during cancellation.:cancelled→ The default status for general inactive bookings.
4. Acknowledgment & Preparation
If the booking is active and has passed previous checks:
:pending_confirmation→ Assigned if the booking is active but lacks an admin or restaurant confirmation ID.:rejected→ Assigned if a confirmation attempt exists but acknowledgment failed.:order_being_prepared→ Assigned if the meal preparation has started.
No-Show Scenario
Conditions:
- Reservation status was
confirmed - Customer didn’t check in within grace period (e.g., 30 min after reservation time)
- No cancellation made
- Staff action
- Payment typically non-refundable
payment_statusremainspaid(if prepaid)
Rejection Scenario
Conditions:
- Restaurant explicitly rejects reservation request
- Insufficient capacity/time slots
- Special requirements cannot be met
payment_status→refunded(if any payment was made)
Expired Scenario
Conditions:
- Reservation remained in
pendingbeyond allowed time - No restaurant confirmation received
- Payment not completed within deadline
- Auto-expired by scheduled job
| Scenario | active | ack | is_temporary | for_locking_system | arrived | no_show | Description | Example |
|---|---|---|---|---|---|---|---|---|
| New Booking (Pending Arrival) | true | false | false | false | false | false | Awaiting restaurant confirmation | |
| Temporary Hold | true | false | true | false | false | false | User in checkout, slot locked | |
| System Lock | true | true | false | true | false | false | Admin-blocked slot | |
| Pending Confirmation | true | false | false | false | false | false | Waiting for restaurant confirmation | |
| Customer Arrived | true | true | false | false | true | false | Customer checked in | |
| Completed | true | true | false | false | true | false | Meal finished (requires additional status) | |
| No-Show | true | true | false | false | false | true | Customer didn’t show up | |
| Cancelled | false | any | false | false | false | false | Reservation cancelled | |
| Rejected | false | false | false | false | false | false | Restaurant rejected booking | |
| Unpaid | `true | true | true | false | false | false | Waiting for customer to pay | |
| Payment Expired | false | true | true | false | false | false | Customer failed to pay | |