Định nghĩa WaitlistEntry

Mục nhập danh sách chờ chứa thông tin về vị trí của khách hàng trong danh sách chờ, bao gồm cả thông tin về số lượng bên trước, thời gian chờ, v.v.


enum WaitlistEntryState {
  WAITLIST_ENTRY_STATE_UNSPECIFIED = 0;
  // The waitlist entry was created and the user is currently waiting in the
  // waitlist.
  WAITING = 1;
  // The waitlist entry is awaiting confirmation by the merchant.
  PENDING_MERCHANT_CONFIRMATION = 8;
  // The waitlist entry has been canceled by the user. Cancellation for no-shows
  // should use the NO_SHOW state.
  CANCELED = 2;
  // The waitlist entry has been declined by the merchant.
  DECLINED_BY_MERCHANT = 7;
  // The merchant is ready to serve the user.
  SERVICE_READY = 3;
  // The user has checked in with the host and is waiting to be seated.
  CHECKED_IN = 4;
  // The user has arrived and been seated by the merchant.
  SEATED = 5;
  // The user did not arrive at the merchant in time and lost their space.
  NO_SHOW = 6;
}

// The times at which the waitlist entry changed state.
message WaitlistEntryStateTimes {
  // Required. The time at which the waitlist entry was created.
  // In seconds since Unix epoch.
  int64 created_time_seconds = 1;

  // The time that the waitlist entry was cancelled. Must be populated
  // when the waitlist entry has been canceled but not before.
  // In seconds since Unix epoch.
  int64 canceled_time_seconds = 2;

  // The time the merchant was ready to serve the user.
  // service_readied_time_seconds must be populated after the merchant is
  // ready to serve the user but not before.
  // In seconds since Unix epoch.
  int64 service_readied_time_seconds = 3;

  // The actual time the user checked in with the host. checked_in_time must be
  // populated after the user has checked in with the merchant but not before.
  // In seconds since Unix epoch.
  int64 checked_in_time_seconds = 4;

  // The seated time for the user. seated_time_seconds must be populated
  // when the user has been seated but not before.
  // In seconds since Unix epoch.
  int64 seated_time_seconds = 5;

  // The time that the user was marked as a no-show. marked_no_show_time_seconds
  // must be populated when the user has been marked a no-show but not before.
  // In seconds since Unix epoch.
  int64 marked_no_show_time_seconds = 6;
}

// An entry in the waitlist.
message WaitlistEntry {
  // Required.
  WaitlistEntryState waitlist_entry_state = 1;

  // Required. The times at which the waitlist entry changed state.
  WaitlistEntryStateTimes waitlist_entry_state_times = 2;

  // Required. Contains fields measuring how long (in time or # of people) until
  // the user is ready to leave the waitlist and be seated.
  WaitEstimate wait_estimate = 3;
}