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)
  },
  "prepayment": {
    object (Prepayment)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "ticketTypeId": [
    string
  ],
  "durationRequirement": enum (DurationRequirement),
  "schedulingRuleOverrides": {
    object (SchedulingRuleOverrides)
  },
  "confirmationMode": enum (ConfirmationMode),
  "linkoutRequiredReason": enum (LinkoutRequiredReason)
}
Поля
start Time

string ( Timestamp format)

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

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

duration

string ( Duration format)

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

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

spots Total

string ( int64 format)

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

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

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

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

string ( int64 format)

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

availability Tag

string

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

resources

object ( Resources )

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

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

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

string

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

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

recurrence

object ( Recurrence )

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

schedule Exception[]

object ( ScheduleException )

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

deposit

object ( Deposit )

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

no Show Fee

object ( NoShowFee )

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

prepayment

object ( Prepayment )

Необязательный. Дополнительная информация о предоплате для этого наличия.

require Credit Card

enum ( RequireCreditCard )

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

ticket Type Id[]

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 в этом слоте).

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

duration Requirement

enum ( DurationRequirement )

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

scheduling Rule Overrides

object ( SchedulingRuleOverrides )

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

confirmation Mode

enum ( ConfirmationMode )

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

linkout Required Reason

enum ( LinkoutRequiredReason )

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

Ресурсы

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

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

string

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

staff Name

string

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

room Id

string

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

room Name

string

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

party Size

integer

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

room Description

object ( Text )

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

Повторение

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

Требования:

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

string ( Timestamp format)

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

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

repeat Every

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)
  }
}
Поля
time Range

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 утра, не будет затронут.

Предоплата

Платеж, который может взиматься с пользователя как часть бронирования.

JSON-представление
{
  "priceInfo": {
    object (PriceInfo)
  }
}
Поля
price Info

object ( PriceInfo )

Контейнер для подробной информации о цене.

ЦенаИнформация

Контейнер для подробной информации о цене.

JSON-представление
{
  "priceType": enum (PriceType),

  // Union field price_options can be only one of the following:
  "price": {
    object (Price)
  },
  "priceRange": {
    object (PriceRange)
  }
  // End of list of possible types for union field price_options.
}
Поля
price Type

enum ( PriceType )

Определяет, как применяется цена или диапазон цен (на человека или фиксированный).

Поле объединения price_options . Варианты цен заключаются в указании точной цены или диапазона. price_options может быть только одним из следующих:
price

object ( Price )

Цена услуги или комиссии.

price Range

object ( PriceRange )

Верхняя и/или нижняя граница услуги или комиссии.

Диапазон цен

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

JSON-представление
{
  "minPrice": {
    object (Price)
  },
  "maxPrice": {
    object (Price)
  }
}
Поля
min Price

object ( Price )

Минимальная сумма.

max Price

object ( Price )

Максимальная сумма. Всегда должно быть > minPrice.

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

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

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

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

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

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

string ( int64 format)

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

first Bookable Sec

string ( int64 format)

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

last Online Cancellable Sec

string ( int64 format)

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

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

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

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

LinkoutRequiredReason

Причина, по которой в слоте есть возможность ссылки.

Перечисления
LINKOUT_REQUIRED_REASON_UNSPECIFIED Значение по умолчанию: Не использовать, соответствует неизвестному.
PAYMENT_REQUIRED Для бронирования слота требуется оплата на партнерской платформе.

Методы

replace

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