WaitlistEntry 定义

等候名单条目包含客户在等候名单中的位置相关信息,包括排在前面的组数、等待时间等信息。

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;
}