При выполнении запроса BatchAvailabilityLookup сервер бронирования партнера проверяет, что запрошенные временные интервалы для записи на прием в данный момент действительны и доступны. Это может быть использовано Центром действий для обеспечения того, чтобы пользователям во время процесса бронирования отображались только актуальные временные интервалы.
Запрос
BatchAvailabilityLookupRequest
Возвращаемое значение
Пакетная доступностьLookupResponse
BatchAvailabilityLookupRequest/BatchAvailabilityLookupResponse
message BatchAvailabilityLookupRequest { option features.(pb.java).nest_in_file_class = YES; // ID of the merchant. string merchant_id = 1 [features.(pb.cpp).string_type = STRING]; // Multiple slot times to be checked for availability. All queried times apply // to the same merchant_id and service_id. repeated SlotTime slot_time = 3; reserved 2; } // Response for the [ext.maps.booking.partner.v3.BatchAvailabilityLookupRequest] // RPC with the availabilities of the appointment slots. message BatchAvailabilityLookupResponse { option features.(pb.java).nest_in_file_class = YES; // The availabilities for the requested SlotTime entries. There must be // exactly one slot_time_availability for each SlotTime entry in the // [ext.maps.booking.partner.v3.BatchAvailabilityLookupRequest]. repeated SlotTimeAvailability slot_time_availability = 1; }
SlotTime в запросе
// Identifies a Slot service_id and start time and optionally, the Slot duration // and resources, for a specific merchant. Note that this differs from the // definition of Slot, as it does not include merchant_id identifier. message SlotTime { option features.(pb.java).nest_in_file_class = YES; // ID of the service. (required) string service_id = 5 [features.(pb.cpp).string_type = STRING]; // Start time of the appointment slot in seconds of UTC time since Unix epoch // (required) int64 start_sec = 1; // Duration of the appointment slot in seconds (optional) int64 duration_sec = 2; // Opaque tag that identifies the availability slot and matches the value // provided in the availability feed (optional) string availability_tag = 3 [features.(pb.cpp).string_type = STRING]; // The set of resources that specifies the appointment slot, e.g. by // indicating the staff member and room selected by the user, or party size // for dining slots (optional) ResourceIds resource_ids = 4; // Indicates whether bookings of this slot will be confirmed // synchronously or asynchronously. (optional) // An UNSPECIFIED value will be interpreted as synchronous. ConfirmationMode confirmation_mode = 6; }
SlotTimeAvailability в ответе
Если слоты не найдены, просто верните пустой ответ. Не возвращайте ошибку 400.
message SlotTimeAvailability {
option features.(pb.java).nest_in_file_class = YES;
// The SlotTime for which availability was checked.
SlotTime slot_time = 1;
// Whether the requested SlotTime is available
bool available = 2;
}