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

Risorsa: disponibilità

Uno slot di disponibilità del servizio del commerciante, che indica l'orario e il numero di posti.

Rappresentazione 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)
}
Campi
startTime

string (Timestamp format)

Ora di inizio dello spazio per appuntamenti.

Un timestamp in formato "Zulu" UTC RFC3339, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

duration

string (Duration format)

Durata dello spazio per appuntamenti

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

spotsTotal

string (int64 format)

Numero di posti totali e di posti liberi per questa disponibilità. Esempi:

  • Lezione di yoga di 10 punti con 3 prenotazioni: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • Sessione di massaggio sulla sedia già completamente prenotata: availability {spotsTotal: 1, spotsOpen: 0 ...}

Nota: se invii richieste utilizzando il formato di compressione della disponibilità definito di seguito, questi due campi verranno dedotti.

  • Una ricorrenza implica spotsTotal=1 e spotsOpen=1.
  • Un ScheduleException implica i criteri spotsTotal=1 e spotsOpen=0.
spotsOpen

string (int64 format)

Numero di posti liberi.

availabilityTag

string

Una stringa opaca facoltativa per identificare questo slot di disponibilità. Se impostato, verrà incluso nelle richieste che prenotano/aggiornano/annullano appuntamenti.

resources

object (Resources)

Risorse facoltative utilizzate per distinguere questo slot di disponibilità da altri quando il servizio fa parte di diversi membri del personale o stanze.

Ad esempio, la stessa lezione di yoga con due istruttori:

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

string

Un elenco di ID che fanno riferimento alle opzioni di pagamento utilizzabili per pagare questo slot. Le opzioni di pagamento effettive sono definite a livello di commerciante e possono anche essere condivise tra più commercianti.

Questo campo sostituisce qualsiasi valore payment_option_id specificato nel messaggio di servizio. Allo stesso modo, gli attributi payment_option_id [id_opzione] specificati qui NON devono essere presenti nel messaggio di servizio, ma devono essere definiti a livello di commerciante.

recurrence

object (Recurrence)

Le informazioni sulla ricorrenza della disponibilità, che rappresentano più di un'ora di inizio. Una ricorrenza deve contenere appuntamenti di un giorno lavorativo.

scheduleException[]

object (ScheduleException)

Orari in cui non è possibile pianificare il servizio. Per limitare il numero di messaggi scheduleException, prendi in considerazione la possibilità di partecipare alle eccezioni adiacenti.

deposit

object (Deposit)

Deposito facoltativo per questa disponibilità. Sostituisce il deposito di servizio, se ne è stato specificato uno.

noShowFee

object (NoShowFee)

Tariffa facoltativa per il mancato arrivo per questa disponibilità. Sostituisce la commissione di mancato arrivo del servizio, se ne è stata specificata una.

requireCreditCard

enum (RequireCreditCard)

Indica se l'utente deve fornire una carta di credito per prenotare questo slot di disponibilità. Se il valore non è impostato, viene ereditato dal livello di servizio, se impostato lì. (facoltativo)

ticketTypeId[]

string

Indica un elenco dei tipi di ticket supportati per questo slot di disponibilità. Se il criterio non viene configurato, tutti i tipi di ticket nel servizio principale sono disponibili per questo slot. Tieni presente che i valori di questo campo devono essere definiti nel servizio principale. Esempi:

  • Servizio con quattro tipi di biglietti: TicketType {ticketTypeId: "adult_1" shortDescription: "Adult Weekdays"} TicketType {ticketTypeId: "adult_2" shortDescription: "Adult weekend"} TicketType {ticketTypeId: "youth_1" shortDescription: "Youth Weekdays"} TicketType {ticketTypeId: "youth_2" shortDescription: "Weekend giovani"}

Per rappresentare l'inventario durante i giorni feriali: availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...}. Per rappresentare l'inventario durante le festività: availability {ticketTypeId: "adult_2" ticketTypeId: "youth_2"...}.

  • Servizio con tre tipi di biglietti: TicketType {ticketTypeId: "adult" shortDescription: "Adult"} TicketType {ticketTypeId: "youth" shortDescription: "Youth"} TicketType {ticketTypeId: "senior" shortDescription: "Senior"}

Per indicare che per la fascia oraria sono disponibili tutti e tre i tipi di ticket, utilizza availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} o "availability {...}" (non impostare ticketTypeId in questa fascia oraria).

(facoltativo)

durationRequirement

enum (DurationRequirement)

Il requisito che indica la durata e/o l'ora di fine degli slot. Questo campo verrà ignorato se l'area non è disponibile. Non utilizzato nel verticale Cose da fare. (facoltativo)

schedulingRuleOverrides

object (SchedulingRuleOverrides)

Regole di pianificazione della disponibilità. Se i campi vengono compilati, sostituiranno le eventuali regole di pianificazione corrispondenti nelle ScheduleRules a livello di servizio.

confirmationMode

enum (ConfirmationMode)

La modalità di conferma che verrà utilizzata per la prenotazione di questa disponibilità. I tentativi di creare prenotazioni per le disponibilità con una modalità di conferma di CONFIRMATION_MODE_SYNCHRONOUS devono essere immediatamente confermati o rifiutati. I tentativi di creare prenotazioni per le disponibilità con modalità di conferma CONFIRMATION_MODE_ASYNCHRONOUS devono essere immediatamente rifiutati o creati con stato IN ATTESA.

Risorse

Una risorsa viene utilizzata per distinguere gli slot di disponibilità l'uno dall'altro quando diversi membri del personale o stanze fanno parte del servizio. Se hanno risorse diverse, possono coesistere più slot per lo stesso servizio e lo stesso intervallo di tempo.

Rappresentazione JSON
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer
}
Campi
staffId

string

ID facoltativo per un membro del personale che fornisce il servizio. Questo campo identifica il membro del personale per tutti i commercianti, i servizi e i record di disponibilità. Deve inoltre essere stabile nel tempo per consentire la correlazione con le prenotazioni passate. Questo campo deve essere presente se è presente staffName.

staffName

string

Nome facoltativo di un membro del personale che fornisce il servizio. Questo campo verrà mostrato agli utenti che effettuano una prenotazione e dovrebbe essere leggibile. Non dovrebbe essere un identificatore opaco. Questo campo deve essere presente se è presente staffId.

roomId

string

Un ID facoltativo della camera in cui si trova il servizio. Questo campo identifica la camera in tutti i commercianti, i servizi e i record di disponibilità. Deve inoltre essere stabile nel tempo per consentire la correlazione con le prenotazioni passate. Questo campo deve essere presente se è presente roomName.

roomName

string

Un nome facoltativo per la camera in cui si trova il servizio. Questo campo verrà mostrato agli utenti che effettuano una prenotazione e dovrebbe essere leggibile. Non dovrebbe essere un identificatore opaco. (Facoltativo, ma obbligatorio se è presente roomId) Nella sala da pranzo il nome di una sala deve essere utilizzato solo per le aree salotto come il bar o il patio e non per i menu a prezzo fisso, le attività speciali o qualsiasi altro valore diverso dalla camera (come la prenotazione o la cena). Ti consigliamo vivamente di non associare una stanza al salotto predefinito.

partySize

integer

Valido solo per i ristoranti: il numero di persone che è possibile ospitare durante questo intervallo di tempo. Un ristorante può essere associato a più Slot contemporaneamente, ognuna delle quali specifica un diverso partySize, se ad esempio 2, 3 o 4 persone possono essere sedute con una prenotazione.

Ricorrenza

I messaggi di ricorrenza sono facoltativi, ma consentono una rappresentazione più compatta degli slot di disponibilità che si ripetono in modo coerente. In genere rappresentano il programma di lavoro di una giornata. I messaggi ScheduleException vengono quindi utilizzati per rappresentare gli intervalli di tempo prenotati/non disponibili all'interno della giornata lavorativa.

Requisiti:

  1. L'espansione degli spazi di disponibilità o delle ripetizioni NON deve creare aree identiche. Se gli ID, il valore startTime, la durata e le risorse corrispondono, gli slot vengono considerati identici.
  2. NON combinare il formato di disponibilità standard e la ricorrenza all'interno degli slot di un singolo servizio. La ricorrenza offre vantaggi ai commercianti/servizi che offrono appuntamenti. Il formato standard è rivolto ai commercianti/servizi con corsi programmati regolarmente.
  3. Le ricorrenza non devono durare più di 24 ore.
Rappresentazione JSON
{
  "repeatUntil": string,
  "repeatEvery": string
}
Campi
repeatUntil

string (Timestamp format)

Il timestamp UTC massimo inclusivo fino a cui si ripete la disponibilità.

Un timestamp in formato "Zulu" UTC RFC3339, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

repeatEvery

string (Duration format)

Definisce l'intervallo di tempo tra le diverse slot di disponibilità.

Esempio: una disponibilità con una durata di 20 minuti, una ripetizione ogni 30 minuti, un orario di inizio alle 9:00 e una ripetizione fino alle 11:00 daranno slot alle 9-9:20, 9:30-9:50, 10-10:20, 10:30-10:50 (obbligatorio)

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

ScheduleException

I messaggi ScheduleException rappresentano intervalli di tempo prenotati/non disponibili all'interno della giornata lavorativa, che sono eccezioni alla ricorrenza descritta sopra. Quando le fasce orarie sono già prenotate, l'elenco delle eccezioni deve essere aggiornato per riflettere i nuovi intervalli non disponibili. La ricorrenza stessa non deve essere modificata.

Rappresentazione JSON
{
  "timeRange": {
    object (TimeRange)
  }
}
Campi
timeRange

object (TimeRange)

L'intervallo di tempo dell'eccezione. Tutte le aree descritte dalla ricorrenza che si sovrappongono a questo intervallo di tempo chiuso-aperto verranno considerate non disponibili.

Esempio: se la ricorrenza specifica una durata di 20 minuti, una ripetizione ogni 30 minuti, un valore startTime pari alle 9:00 e una ripetizione fino alle 11:00, un'eccezione ScheduleException con un intervallo di tempo compreso tra le 9:45 e le 11:00 renderebbe non disponibili gli slot alle ore 9:30-9:50, 10-10:00 e 10:00-10:20

Tieni presente che, poiché l'intervallo di tempo è chiuso-aperto, l'intervallo che inizia alle 11:00 non ne risentirà.

DurationRequirement

Questa enumerazione indica quali requisiti esistono per l'utente per confermare o visualizzare la durata/l'ora di fine degli slot richiesti.

Enum
DURATION_REQUIREMENT_UNSPECIFIED La gestione dell'ora di fine non è specificata. Questa è l'impostazione predefinita.
DO_NOT_SHOW_DURATION L'ora di fine non viene mostrata all'utente.
MUST_SHOW_DURATION Prima di poter fissare un appuntamento, l'utente deve mostrare l'ora di fine.

SchedulingRuleOverrides

Regole di pianificazione a livello di disponibilità.

Rappresentazione JSON
{
  "lastBookableSec": string,
  "firstBookableSec": string,
  "lastOnlineCancellableSec": string
}
Campi
lastBookableSec

string (int64 format)

L'ultima volta (in secondi) in cui questo slot può essere prenotato. Questo timestamp deve precedere il valore startSec dello slot da rispettare (se gli utenti devono poter effettuare la prenotazione dopo l'ora di inizio, utilizza ScheduleRules.min_booking_before_end_time a livello di servizio). Se presente, sovrascriverà qualsiasi valore specificato nel valore min_booking_buffer delle regole di pianificazione del servizio corrispondente.

firstBookableSec

string (int64 format)

La prima volta (in secondi) che questo slot può essere prenotato. Questo timestamp deve essere precedente al valore startSec dello slot o a lastBookableSec, se specificato.

lastOnlineCancellableSec

string (int64 format)

Se impostato, l'ultima volta (in secondi dall'epoca Unix) in cui questo specifico spazio per appuntamenti può essere annullato tramite Prenota con Google. Questo campo sostituirà qualsiasi regola di annullamento a livello di servizio. (facoltativo)

ConfirmationMode

Le modalità di conferma utilizzate per le disponibilità della prenotazione.

Enum
CONFIRMATION_MODE_UNSPECIFIED La modalità di conferma non è stata specificata. Verrà supposta la conferma sincrona.
CONFIRMATION_MODE_SYNCHRONOUS Le prenotazioni per questa disponibilità verranno confermate in modalità sincrona.
CONFIRMATION_MODE_ASYNCHRONOUS Le prenotazioni per questa disponibilità verranno confermate in modo asincrono.

Metodi

replace

Sostituisce il valore Availability di un Service esistente di un commerciante gestito dall'aggregatore specificato e lo restituisce.