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

Zasób: Dostępność

Przedział dostępności usługi sprzedawcy, określający czas i liczbę miejsc.

Zapis 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)
}
Pola
startTime

string (Timestamp format)

Godzina rozpoczęcia przedziału czasu dla spotkań.

Sygnatura czasowa w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundy i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

duration

string (Duration format)

Czas trwania przedziału czasu dla spotkań

Czas trwania w sekundach z maksymalnie 9 cyframi po przecinku, kończącym się cyframi „s”. Przykład: "3.5s".

spotsTotal

string (int64 format)

Łączna liczba miejsc i wolnych miejsc w przypadku tej dostępności. Przykłady:

  • Zajęcia z jogi w 10 miejscach, w tym 3 zarezerwowane: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • Sesja masażu na krześle, która jest już zarezerwowana: availability {spotsTotal: 1, spotsOpen: 0 ...}

Uwaga: jeśli wysyłasz żądania przy użyciu zdefiniowanego poniżej formatu kompresji dostępności, te 2 pola zostaną wywnioskowane.

  • Powtarzanie zakłada spotsTotal=1 i spotsOpen=1.
  • Wyjątek harmonogramu oznacza klasyfikację spotsTotal=1 i spotsOpen=0.
spotsOpen

string (int64 format)

Liczba wolnych miejsc.

availabilityTag

string

Opcjonalny nieprzejrzysty ciąg znaków identyfikujący ten przedział dostępności. Jeśli zasada jest skonfigurowana, jest uwzględniana w prośbach o rezerwowanie, aktualizowanie i anulowanie spotkań.

resources

object (Resources)

Zasoby opcjonalne używane do odróżnienia tego przedziału dostępności od innych, gdy usługa obejmuje różnych pracowników lub sale.

Np. te same zajęcia jogi z 2 instruktorami:

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

string

Lista identyfikatorów odnoszących się do opcji płatności, za pomocą których można zapłacić za ten przedział. Rzeczywiste opcje płatności są określone na poziomie sprzedawcy i mogą być też współdzielone przez wielu sprzedawców.

To pole zastępuje wszystkie wartości payment_option_id określone w komunikacie dotyczącym usługi. Podobnie określone tutaj wartości parametru payment_option_id NIE muszą być zawarte w komunikacie dotyczącym usługi, chociaż muszą być zdefiniowane na poziomie sprzedawcy.

recurrence

object (Recurrence)

Informacje o powtarzaniu dotyczące dostępności reprezentujące więcej niż jeden czas rozpoczęcia. Cyklicznie powinny obejmować spotkania na jeden dzień roboczy.

scheduleException[]

object (ScheduleException)

Godziny, w których nie można zaplanować tej usługi. Aby ograniczyć liczbę wiadomości w harmonogramie, rozważ dołączenie sąsiednich wyjątków.

deposit

object (Deposit)

Opcjonalna kaucja za tę dostępność. Zastępuje kwotę wpłaty za usługę, jeśli została określona.

noShowFee

object (NoShowFee)

Opcjonalnie – brak opłaty za wstęp w przypadku tej dostępności. Zastępuje opłatę za niestawienie się, jeśli została określona.

requireCreditCard

enum (RequireCreditCard)

Wskazuje, czy użytkownik musi podać kartę kredytową, aby zarezerwować ten przedział dostępności. Jeśli wartość nie jest ustawiona, jest dziedziczona z poziomu usługi, o ile jest tam ustawiona. (opcjonalnie)

ticketTypeId[]

string

Wskazuje listę obsługiwanych typów zgłoszeń dla tego przedziału dostępności. Jeśli nie są ustawione, dla tego przedziału dostępne są wszystkie typy zgłoszeń w usłudze nadrzędnej. Pamiętaj, że wartości tego pola muszą być zdefiniowane w usłudze nadrzędnej. Przykłady:

  • Usługa z czterema rodzajami biletów: TicketType {ticketTypeId: "adult_1" shortDescription: "adult weekdays"} TicketType {ticketTypeId: "adult_2" shortDescription: "adult weekends"} TicketType {ticketTypeId: "youth_1" shortDescription: "Youth weekdays"} TicketType {ticketTypeId: "youth_2" shortDescription: "weekendy dla młodzieży"}

Aby reprezentować zasoby reklamowe w dni robocze: availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...}. Aby zaprezentować zasoby reklamowe w okresie świątecznym: availability {ticketTypeId: "adult_2" ticketTypeId: "youth_2"...}.

  • Usługa z 3 rodzajami biletów: TicketType {ticketTypeId: "adult" shortDescription: "adult"} TicketType {ticketTypeId: "youth" shortDescription: "Youth"} TicketType {ticketTypeId: "senior" shortDescription: "Senior"}

Aby wskazać, że w tym przedziale czasu dostępne są wszystkie 3 typy biletów, użyj atrybutu availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} lub `availability {...}' (nie ustawiaj w tym przedziale czasu identyfikatora TicketTypeId).

(opcjonalnie)

durationRequirement

enum (DurationRequirement)

Wymóg wyświetlania czasu trwania przedziałów lub czasu ich zakończenia. To pole będzie ignorowane, jeśli przedział będzie niedostępny. Nieużywany w kategorii „Atrakcje”. (opcjonalnie)

schedulingRuleOverrides

object (SchedulingRuleOverrides)

Reguły harmonogramu dostępności. Wypełnione pola zastąpią wszystkie odpowiadające im reguły planowania w Regułach harmonogramu na poziomie usługi.

confirmationMode

enum (ConfirmationMode)

Tryb potwierdzenia, który zostanie użyty podczas rezerwacji tej dostępności. Próby utworzenia rezerwacji dla dostępności z trybem potwierdzenia CONFIRMATION_MODE_SYNCHRONOUS muszą zostać natychmiast potwierdzone lub odrzucone. Próby utworzenia rezerwacji dla dostępności w trybie potwierdzenia CONFIRMATION_MODE_ASYNCHRONOUS muszą zostać natychmiast odrzucone lub utworzone ze stanem PENDING.

Zasoby

Zasób służy do rozróżniania przedziałów dostępności, gdy korzystają z usługi różni pracownicy lub sale. Jeśli mają różne zasoby, może istnieć wiele przedziałów dla tej samej usługi i przedziału czasu.

Zapis JSON
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer
}
Pola
staffId

string

Opcjonalny identyfikator pracownika świadczącego usługę. To pole określa pracownika we wszystkich sprzedawcach, usługach i rejestrach dostępności. Musi też być stabilna w czasie, aby umożliwić korelację z wcześniejszymi rezerwacjami. Jeśli pole zostało podane, to pole musi być obecne.

staffName

string

Opcjonalne imię i nazwisko pracownika świadczącego usługę. To pole będzie wyświetlane użytkownikom dokonującym rezerwacji i powinno być czytelne dla człowieka, a nie nieprzejrzyste identyfikator. To pole musi być obecne, jeśli istnieje identyfikator personelu.

roomId

string

Opcjonalny identyfikator pokoju, w którym dostępna jest usługa. To pole określa salę we wszystkich sprzedawcach, usługach i rejestrach dostępności. Musi też być stabilna w czasie, aby umożliwić korelację z wcześniejszymi rezerwacjami. To pole musi być obecne, jeśli istnieje pole „roomName”.

roomName

string

Opcjonalna nazwa pokoju, w którym dostępna jest usługa. To pole będzie wyświetlane użytkownikom dokonującym rezerwacji i powinno być czytelne dla człowieka, a nie nieprzejrzyste identyfikator. (opcjonalne, ale wymagane, jeśli podany jest identyfikator pokoju) W jadalni nazwa sali powinna być używana tylko w odniesieniu do miejsc wypoczynkowych, takich jak bar lub patio. Nie należy jej używać w przypadku menu o stałej cenie, atrakcji specjalnych ani innych wartości niezwiązanych z pokojem (np. rezerwacji lub kolacji). Zdecydowanie zalecamy, aby domyślne miejsce wypoczynkowe nie było przypisane do żadnego pomieszczenia.

partySize

integer

Dotyczy tylko restauracji: liczba miejsc, na które można przyjść w tym czasie. Restauracja może być powiązana z wieloma przedziałami naraz, a każdy z nich może określać inną wielkość imprezy, np. dla 2, 3 lub 4 osób mogą usiąść w ramach rezerwacji.

Powtarzanie

Komunikaty o powtarzaniu są opcjonalne, ale pozwalają na mniej obszerne przedstawienie powtarzających się przedziałów dostępności. Zwykle są one częścią planu pracy. Komunikaty ScheduleWyjątki są następnie używane do reprezentowania zarezerwowanych i niedostępnych okresów w ciągu dnia roboczego.

Wymagania:

  1. Rozszerzenie przedziałów dostępności lub powtórzeń NIE może tworzyć identycznych przedziałów. Jeśli identyfikatory, czas startowy, czas trwania i zasoby są jednakowe, przedziały są uznawane za identyczne.
  2. NIE mieszaj standardowego formatu dostępności i powtarzania w przedziałach jednej usługi. Świadczenia cykliczne przez sprzedawców lub usług, które oferują wizyty. Format standardowy jest przeznaczony dla sprzedawców i usług, które regularnie stosują zajęcia.
  3. Powtarzanie nie powinno trwać dłużej niż 24 godziny.
Zapis JSON
{
  "repeatUntil": string,
  "repeatEvery": string
}
Pola
repeatUntil

string (Timestamp format)

Obejmuje maksymalną sygnaturę czasową UTC, do której dostępność powtarza się.

Sygnatura czasowa w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundy i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

repeatEvery

string (Duration format)

Określa czas między kolejnymi przedziałami dostępności.

Przykład: dostępność o czasie trwania 20 minut, powtarzanie co 30 minut, początek 9:00 rano i powtarzanie do 11:00 spowoduje zwrócenie przedziałów w godzinach 9:00–9:20, 9:30–9:50, 10:30–10:50, 10:30–10:501 (pole wymagane)

Czas trwania w sekundach z maksymalnie 9 cyframi po przecinku, kończącym się cyframi „s”. Przykład: "3.5s".

ScheduleException

Komunikaty ScheduleWyjątki reprezentują zarezerwowane/niedostępne zakresy czasu w ciągu dnia roboczego i stanowią wyjątki od opisanej powyżej sytuacji powtarzania. W miarę rezerwowania przedziałów czasu należy aktualizować listę wyjątków o nowe niedostępne przedziały czasu. Samo powtarzanie nie powinno być modyfikowane.

Zapis JSON
{
  "timeRange": {
    object (TimeRange)
  }
}
Pola
timeRange

object (TimeRange)

Zakres czasowy wyjątku. Wszystkie przedziały opisane w powtarzającym się przedziale czasu, które nakładają się na ten zakres czasu zamknięcia, będą uznane za niedostępne.

Przykład: jeśli powtarzanie określa czas trwania 20 minut, powtarzanie każdego z 30 minut, czas rozpoczęcia 9:00 rano i powtórzenie do 11:00 rano, wyjątek ScheduleWyjątki o zakresie czasu 9:45-11:00 spowoduje, że przedziały będą niedostępne w przedziałach 9:30-9:50, 10:00-10:50

Pamiętaj, że ponieważ przedział czasu jest zamknięty, nie wpłynie to na przedział rozpoczynający się o 11:00 rano.

DurationRequirement

Ta wyliczenie wskazuje wymagania dotyczące potwierdzenia lub wyświetlenia żądanego czasu trwania lub czasu zakończenia przedziałów.

Wartości w polu enum
DURATION_REQUIREMENT_UNSPECIFIED Nie określono obsługi czasu zakończenia. To jest ustawienie domyślne.
DO_NOT_SHOW_DURATION Czas zakończenia nie jest wyświetlany.
MUST_SHOW_DURATION Zanim będzie można umówić się na spotkanie, użytkownik musi zobaczyć godzinę zakończenia.

SchedulingRuleOverrides

Reguły planowania poziomu dostępności.

Zapis JSON
{
  "lastBookableSec": string,
  "firstBookableSec": string,
  "lastOnlineCancellableSec": string
}
Pola
lastBookableSec

string (int64 format)

Ostatni czas (w sekundach), w którym można zarezerwować ten przedział. Ta sygnatura czasowa musi poprzedzać parametr startSec przedziału, który ma być respektowany (jeśli użytkownicy powinni mieć możliwość rezerwowania po czasie rozpoczęcia, użyj reguły planowania na poziomie usługi.min_booking_before_end_time). Jeśli ten adres występuje, zastąpi wszystko, co jest określone w polu min_booking_buffer w regułach planowania odpowiedniej usługi.

firstBookableSec

string (int64 format)

Pierwszy raz (w sekundach), w którym można zarezerwować ten przedział. Ta sygnatura czasowa musi być przed wyrażeniem startSec przedziału lub lastBookableSec, jeśli jest określona.

lastOnlineCancellableSec

string (int64 format)

Jeśli ustawiono, ostatni czas (w sekundach od początku ery uniksowej), przez jaki ten konkretny przedział czasu dla spotkania można anulować za pomocą Zarezerwuj z Google. To pole zastąpi wszystkie reguły anulowania na poziomie usługi. (opcjonalnie)

ConfirmationMode

Tryby potwierdzenia używane podczas rezerwowania dostępności.

Wartości w polu enum
CONFIRMATION_MODE_UNSPECIFIED Tryb potwierdzenia nie został określony. Zostanie przyjęte synchroniczne potwierdzenie.
CONFIRMATION_MODE_SYNCHRONOUS Rezerwacje dotyczące tej dostępności będą potwierdzane synchronicznie.
CONFIRMATION_MODE_ASYNCHRONOUS Rezerwacje dotyczące tej dostępności będą potwierdzone asynchronicznie.

Metody

replace

Zastępuje atrybut Availability istniejącego Service sprzedawcy zarządzanego przez określonego pośrednika i zwraca tę wartość.