REST Resource: inventory.partners.merchants.services.availability

Ресурс: Наличие

Слот доступности сервиса продавца с указанием времени и количества мест.

JSON-представление
{
  "startTime": string,
  "duration": string,
  "spotsTotal": string,
  "spotsOpen": string,
  "availabilityTag": string,
  "resources": {
    object (Resources)
  },
  "paymentOptionId": [
    string
  ],
  "recurrence": {
    object (Recurrence)
  },
  "scheduleException": [
    {
      object (ScheduleException)
    }
  ],
  "deposit": {
    object (Deposit)
  },
  "noShowFee": {
    object (NoShowFee)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "ticketTypeId": [
    string
  ],
  "durationRequirement": enum (DurationRequirement),
  "schedulingRuleOverrides": {
    object (SchedulingRuleOverrides)
  },
  "confirmationMode": enum (ConfirmationMode)
}
Поля
startTime

string ( Timestamp format)

Время начала интервала встречи.

Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

duration

string ( Duration format)

Продолжительность интервала встречи

Длительность в секундах, содержащая до девяти дробных цифр и оканчивающаяся на « s ». Пример: "3.5s" .

spotsTotal

string ( int64 format)

Общее количество мест и открытых мест данного наличия. Примеры:

  • Занятия йогой на 10 мест, 3 из которых забронированы: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • Сеанс массажа в кресле, который уже полностью забронирован: availability {spotsTotal: 1, spotsOpen: 0 ...}

Примечание. При отправке запросов с использованием формата сжатия доступности, определенного ниже, будут выведены эти два поля.

  • Повторение подразумевает spotsTotal=1 и spotsOpen=1 .
  • ScheduleException подразумевает spotsTotal=1 и spotsOpen=0 .
spotsOpen

string ( int64 format)

Количество открытых мест.

availabilityTag

string

Необязательная непрозрачная строка для идентификации этого слота доступности. Если установлено, оно будет включено в запросы на бронирование/обновление/отмену встреч.

resources

object ( Resources )

Дополнительные ресурсы, используемые для устранения неоднозначности этого интервала доступности среди других, когда разные сотрудники или помещения являются частью службы.

Например, один и тот же урок йоги с двумя инструкторами:

availability { resources { staffId: "1" staffName: "Amy" }
               spotsTotal: 10 spotsOpen: 7 }
availability { resources { staffId: "2" staffName: "John" }
               spotsTotal: 5 spotsOpen: 2 }
paymentOptionId[]

string

Список идентификаторов, ссылающихся на варианты оплаты, которые можно использовать для оплаты этого слота. Фактические варианты оплаты определяются на уровне продавца, а также могут использоваться несколькими продавцами.

Это поле переопределяет любые идентификаторы pay_option_ids, указанные в служебном сообщении. Аналогичным образом, указанные здесь идентификаторы pay_option_ids НЕ обязательно должны присутствовать в служебном сообщении, хотя они должны быть определены на уровне продавца.

recurrence

object ( Recurrence )

Информация о повторении доступности, представляющая более одного времени начала. Повторение должно содержать записи на один рабочий день.

scheduleException[]

object ( ScheduleException )

Времена, когда эту услугу нельзя запланировать. Чтобы ограничить количество сообщений ScheduleException, рассмотрите возможность объединения соседних исключений.

deposit

object ( Deposit )

Дополнительный залог за это наличие. Переопределяет депозит за обслуживание, если он был указан.

noShowFee

object ( NoShowFee )

Дополнительная плата за незаезд при наличии возможности. Отменяет плату за неявку за услугу, если она была указана.

requireCreditCard

enum ( RequireCreditCard )

Указывает, должен ли пользователь предоставить кредитную карту, чтобы забронировать этот слот доступности. Если значение не установлено, оно наследуется от уровня обслуживания, если оно там установлено. (необязательный)

ticketTypeId[]

string

Указывает список поддерживаемых типов билетов для этого слота доступности. Если значение не установлено, для этого слота доступны все типы билетов родительской службы. Обратите внимание, что значения этого поля должны быть определены в родительском сервисе. Примеры:

  • Сервис с четырьмя типами билетов: TicketType {ticketTypeId: "adult_1" shortDescription: "Взрослые будни"} TicketType {ticketTypeId: "adult_2" shortDescription: "Взрослые выходные"} TicketType {ticketTypeId: "youth_1" shortDescription: "Молодёжные будни"} TicketType { TicketTypeId: "youth_2" shortDescription: "Молодежные выходные"}

Чтобы представить инвентарь в будние дни: availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...} . Чтобы представить инвентарь во время праздников: availability {ticketTypeId: "adult_2" ticketTypeId: "youth_2"...} .

  • Сервис с тремя типами билетов: TicketType {ticketTypeId: "adult" shortDescription: "Adult"} TicketType {ticketTypeId: "youth" shortDescription: "Youth"} TicketType {ticketTypeId: "senior" shortDescription: "Senior"}

Чтобы указать, что все три типа билетов доступны для этого временного интервала, используйте либо availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} либо `availability {...}' (не устанавливайте TicketTypeId в этом слоте).

(необязательный)

durationRequirement

enum ( DurationRequirement )

Требование показывать продолжительность и/или время окончания слотов. Это поле будет игнорироваться, если слот недоступен. Не используется в вертикали «Что нужно сделать». (необязательный)

schedulingRuleOverrides

object ( SchedulingRuleOverrides )

Правила планирования доступности. Если поля заполнены, они переопределяют любые соответствующие правила планирования в SchedulingRules уровня службы.

confirmationMode

enum ( ConfirmationMode )

Режим подтверждения, который будет использоваться при бронировании этой доступности. Попытки создать бронирования для наличия мест с режимом подтверждения CONFIRMATION_MODE_SYNCHRONOUS должны быть немедленно подтверждены или отклонены. Попытки создать бронирования для наличия мест с режимом подтверждения CONFIRMATION_MODE_ASYNCHRONOUS должны быть либо немедленно отклонены, либо созданы со статусом ОЖИДАНИЕ.

Ресурсы

Ресурс используется для устранения неоднозначности слотов доступности друг от друга, когда разные сотрудники или помещения являются частью услуги. Несколько слотов для одной и той же услуги и временного интервала могут сосуществовать, если они имеют разные ресурсы.

JSON-представление
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer
}
Поля
staffId

string

Необязательный идентификатор сотрудника, предоставляющего услугу. В этом поле идентифицируется сотрудник во всех записях продавцов, услуг и доступности. Он также должен быть стабильным во времени, чтобы обеспечить корреляцию с прошлыми бронированиями. Это поле должно присутствовать, если присутствует StaffName.

staffName

string

Необязательное имя сотрудника, предоставляющего услугу. Это поле будет отображаться для пользователей, совершающих бронирование, и должно быть удобочитаемым, а не непрозрачным идентификатором. Это поле должно присутствовать, если присутствует StaffId.

roomId

string

Необязательный идентификатор комнаты, в которой находится услуга. Это поле идентифицирует комнату во всех записях продавцов, услуг и доступности. Он также должен быть стабильным во времени, чтобы обеспечить корреляцию с прошлыми бронированиями. Это поле должно присутствовать, если присутствует значение roomName.

roomName

string

Необязательное название комнаты, в которой находится услуга. Это поле будет отображаться для пользователей, совершающих бронирование, и должно быть удобочитаемым, а не непрозрачным идентификатором. (необязательно, но обязательно, если присутствует roomId) В столовой название зала следует использовать только для зон отдыха, таких как бар или патио, и не следует использовать для меню с фиксированной ценой, специальных мероприятий или любых других значений, не связанных с комнатой (например, бронирование или ужин). Настоятельно рекомендуется, чтобы зона отдыха по умолчанию не имела связанной с ней комнаты.

partySize

integer

Применимо только для ужина: размер вечеринки, который может разместиться в течение этого временного интервала. Ресторан может быть одновременно связан с несколькими слотами, в каждом из которых указан разный размер вечеринки, если, например, при бронировании могут разместиться 2, 3 или 4 человека.

Повторение

Сообщения о повторении не являются обязательными, но позволяют более компактно представить постоянно повторяющиеся интервалы доступности. Обычно они представляют собой рабочий график дня. Сообщения ScheduleException затем используются для представления зарезервированных/недоступных диапазонов времени в течение рабочего дня.

Требования:

  1. Расширение слотов доступности или повторений НЕ должно создавать идентичные слоты. Если идентификаторы, startTime, продолжительность и ресурсы совпадают, слоты считаются идентичными.
  2. НЕ смешивайте стандартный формат доступности и повторяемость в слотах одной услуги. Повторение приносит пользу продавцам/службам, которые предлагают встречи. Стандартный формат ориентирован на продавцов/услуги с регулярными занятиями.
  3. Рецидивы не должны длиться более 24 часов.
JSON-представление
{
  "repeatUntil": string,
  "repeatEvery": string
}
Поля
repeatUntil

string ( Timestamp format)

Включающая максимальная временная метка UTC, до которой доступность будет повторяться.

Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

repeatEvery

string ( Duration format)

Определяет время между последовательными интервалами доступности.

Пример. Доступность с продолжительностью 20 минут, повтор каждые 30 минут, время начала 9:00 и повторение до 11:00 дадут слоты на 9–9:20, 9:30–9:50, 10. -10:20, 10:30-10:50, 11-11:20. (необходимый)

Длительность в секундах, содержащая до девяти дробных цифр и оканчивающаяся на « s ». Пример: "3.5s" .

РасписаниеИсключение

Сообщения ScheduleException представляют собой зарезервированные/недоступные диапазоны времени в течение рабочего дня, которые являются исключениями из описанного выше повторения. По мере резервирования временных интервалов список исключений следует обновлять, чтобы отразить новые недоступные временные диапазоны. Само повторение не должно изменяться.

JSON-представление
{
  "timeRange": {
    object (TimeRange)
  }
}
Поля
timeRange

object ( TimeRange )

Временной диапазон исключения. Любые слоты, описанные повторением, которые перекрывают этот диапазон времени закрытия-открытия, будут считаться недоступными.

Пример. Если для повторения указана продолжительность 20 минут, повторение каждые 30 минут, время начала 9:00 и повторение до 11:00, то исключение ScheduleException с диапазоном времени 9:45–11:00 сделает недоступным слоты с 9:30 до 9:50, с 10 до 10:20 и с 10:30 до 10:50.

Обратите внимание: поскольку временной диапазон закрыт-открыт, интервал, начинающийся в 11 утра, не будет затронут.

ПродолжительностьТребование

Это перечисление указывает, какие требования существуют для пользователя для подтверждения или просмотра продолжительности/времени окончания запрошенных интервалов.

Перечисления
DURATION_REQUIREMENT_UNSPECIFIED Обработка времени окончания не указана. Это значение по умолчанию.
DO_NOT_SHOW_DURATION Время окончания не отображается пользователю.
MUST_SHOW_DURATION Время окончания должно быть показано пользователю, прежде чем можно будет назначить встречу.

ПланированиеRuleOverrides

Правила планирования уровня доступности.

JSON-представление
{
  "lastBookableSec": string,
  "firstBookableSec": string,
  "lastOnlineCancellableSec": string
}
Поля
lastBookableSec

string ( int64 format)

Последний раз (в секундах), когда этот слот можно зарезервировать. Эта временная метка должна быть до startSec интервала, который необходимо учитывать (если пользователи должны иметь возможность бронировать после времени начала, используйте уровень обслуживания SchedulingRules.min_booking_before_end_time). Если он присутствует, он переопределяет все, указанное в min_booking_buffer правил планирования соответствующей службы.

firstBookableSec

string ( int64 format)

Первый раз (в секундах), когда этот слот можно зарезервировать. Эта временная метка должна быть до startSec слота или LastBookableSec, если указано.

lastOnlineCancellableSec

string ( int64 format)

Если установлено, это последний раз (в секундах с эпохи Unix), когда этот конкретный интервал встречи можно отменить с помощью функции «Зарезервировать в Google». Это поле будет иметь приоритет над любыми правилами отмены на уровне обслуживания. (необязательный)

Режим подтверждения

Режимы подтверждения, используемые при бронировании мест.

Перечисления
CONFIRMATION_MODE_UNSPECIFIED Не указан режим подтверждения. Предполагается синхронное подтверждение.
CONFIRMATION_MODE_SYNCHRONOUS Бронирование на эту доступность будет подтверждено синхронно.
CONFIRMATION_MODE_ASYNCHRONOUS Бронирование на эту доступность будет подтверждено асинхронно.

Методы

replace

Заменяет Availability существующего Service мерчанта, управляемого указанным агрегатором, и возвращает его.