Strutturazione dei dati sulla disponibilità per le prenotazioni

Definizioni dei parametri

Come specificato nei Availability definizione:

  • party_size: il numero di persone che è possibile ospitare durante questo periodo slot machine. Un ristorante può essere associato a più slot contemporaneamente, ognuna con un valore party_size diverso, se ad esempio 2, 3 o 4 persone si può sedere con prenotazione
  • spots_open: il numero di posti attualmente disponibili per questa azione voce disponibilità
  • spots_total: il numero totale di posti che il commerciante dispone per questo articolo (incluse quelle che non sono disponibili)

Questi tre parametri operano in sinergia per creare una rappresentazione digitale del planimetria. party_size è il numero di persone che ogni tabella può contenere (saranno una voce per ogni dimensione che una tabella può ospitare). spots_open e spots_total sono i conteggi del numero di tabelle che possono ospitare quel party_size.

Esempio di planimetria vuota

Immagina un ristorante con la seguente planimetria e senza prenotazioni:

Figura 1: planimetria senza prenotazioni attive
Figura 1: pianta senza prenotazioni attive

I valori per party_size, spots_open e spots_total sarebbero:

party_size spots_open spots_total
4 3 3
5 3 3
6 4 4
7 1 1
8 1 1

Il feed di disponibilità per una fascia oraria di questo commerciante avrebbe il seguente aspetto:

JSON

{
  "availability": [
        {
          "spots_total": 3,
          "spots_open": 3,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 4
          }
        },
        {
          "spots_total": 3,
          "spots_open": 3,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 5
          }
        },
        {
          "spots_total": 4,
          "spots_open": 4,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 6
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 7
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 8
          }
        }
      ]
}

Esempio di planimetria con una prenotazione

Ora immagina che una delle tavole rotonde sia stata prenotata:

Figura 2: planimetria con una prenotazione attiva
Figura 2: pianta con uno prenotazione attiva

I valori per party_size, spots_open e spots_total ora sarebbero:

party_size spots_open spots_total
4 2 3
5 2 3
6 3 4
7 1 1
8 1 1

JSON

{
  "availability": [
        {
          "spots_total": 3,
          "spots_open": 2,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 4
          }
        },
        {
          "spots_total": 3,
          "spots_open": 2,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 5
          }
        },
        {
          "spots_total": 4,
          "spots_open": 3,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 6
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 7
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 8
          }
        }
      ]
}

Specificare la disponibilità dei pasti con il supporto delle tabelle combinate

Un ristorante può combinare i tavoli in modo da renderli più grandi gruppi. Nei tuoi feed dovresti specificare spots_open e spots_total in modo che rifletta accuratamente la tua facoltà di accettare le parti di un dimensioni. Di seguito è riportato un esempio di come puoi specificare combinazioni di tabelle. Il metodo di calcolo utilizzato nei tuoi feed potrebbe differire leggermente. accettabile, devi specificare spots_open e spots_total in modo che corrisponda alla tua logica di business.

Se un ristorante supporta la combinazione dei tavoli per formare una festa più numerosa, puoi aggiorna spots_open e spots_total di conseguenza.

Supponiamo che un ristorante possa combinare due tavolini per ospitare 7-10 persone. persone.

Figura 3: planimetria senza prenotazioni attive
Figura 3: pianta senza prenotazioni attive

Nel caso di nessuna prenotazione attiva, i valori di party_size, spots_open, e spots_total sono:

party_size spots_open spots_total
4 3 3
5 3 3
6 4 4
7 1 1
8 1 1
9 1 1
10 1 1

Ora, con la stessa planimetria, viene effettuata una prenotazione per un gruppo di 10 persone che combina due tabelle piccole.

Figura 4: planimetria con una prenotazione attiva su due tabelle
Figura 4: pianta con una prenotazione attiva su due tabelle

Quindi, i valori per party_size, spots_open e spots_total sono ora:

party_size spots_open spots_total
4 1 3
5 1 3
6 2 4
7 1 1
8 1 1
9 0 1
10 0 1