AI-generated Key Takeaways
-
WaitlistEntry
creation can fail due to various business logic reasons, such as an existing waitlist entry, party size limitations, merchant's operational status (closed or no wait), waitlist capacity, unsupported phone number country, or waitlist closure. -
If a
WaitlistEntry
creation fails, theWaitlistBusinessLogicFailure
message provides a specificCause
for the failure, offering insight into the reason. -
The
WaitlistBusinessLogicFailure
message may optionally include adescription
field for debugging purposes, providing additional context to the partner.
WaitlistEntry failure can happen when creating a waitlist entry.
// Status data that conveys why creating a waitlist entry fails. // If there is a business logic error that is not captured here, please // reach out to the Reserve with Google team to add it to this list. Other // errors should be returned using standard HTTP error codes. message WaitlistBusinessLogicFailure { enum Cause { // Default value: Don't use; amounts to an "unknown error" // Unexpected errors must be returned using standard HTTP error codes. CAUSE_UNSPECIFIED = 0; // The user has already booked a waitlist entry with the partner. EXISTING_WAITLIST_ENTRY = 1; // The requested party size is below the merchant’s minimum. BELOW_MIN_PARTY_SIZE = 2; // The requested party size is above the merchant’s maximum. ABOVE_MAX_PARTY_SIZE = 3; // The requested merchant is currently closed. MERCHANT_CLOSED = 4; // There is currently no wait and the user should walk in without joining // the waitlist. NO_WAIT = 5; // The waitlist is at capacity and new users are not being accepted at this // time. WAITLIST_FULL = 6; // The country of the phone number is not supported. PHONE_NUMBER_COUNTRY_UNSUPPORTED = 7; // The waitlist is closed and not accepting new users. This is expected when // the waitlist enters state CLOSED_OTHER after the user has already seen a // wait estimate. WAITLIST_CLOSED = 8; } // Required. The reason why the booking failed. Cause cause = 1; // This optional field is used for the partner to include additional // information for debugging purposes only. string description = 2; }