Structurer les données de disponibilité pour les réservations

Définition des paramètres

Comme indiqué dans les Availability définition:

  • party_size: nombre de personnes pouvant être logées pendant cette période emplacement. Un restaurant peut être associé à plusieurs emplacements en même temps, spécifiant chacune un party_size différent, si par exemple 2, 3 ou 4 personnes peut être réservé
  • spots_open: nombre de places actuellement disponibles pour cet événement entrée de disponibilité
  • spots_total: nombre total de places dont dispose le marchand pour cet élément (y compris celles qui ne sont pas disponibles)

Ensemble, ces trois paramètres permettent de créer une représentation numérique plan d'étage. party_size correspond au nombre de personnes que chaque tableau peut contenir (il y aura être une entrée pour chaque taille qu'une table peut accueillir). spots_open et spots_total correspondent au nombre de tables pouvant accueillir cet élément party_size.

Exemple de plan d'étage vide

Imaginez un restaurant avec le plan d'étage suivant et sans réservations:

<ph type="x-smartling-placeholder">
</ph> Figure 1: Plan d&#39;étage sans réservation active
Figure 1:Plan d'étage sans réservations actives

Voici les valeurs de party_size, spots_open et spots_total:

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

Le flux disponibilité pour un créneau horaire chez ce marchand se présente comme suit:

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
          }
        }
      ]
}

Exemple de plan d'étage avec une réservation

Imaginons maintenant que l'une des tables rondes ait été réservée:

<ph type="x-smartling-placeholder">
</ph> Figure 2: Plan d&#39;étage avec une réservation active
Figure 2:Plan d'étage avec un réservation active

Les valeurs de party_size, spots_open et spots_total sont désormais les suivantes:

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
          }
        }
      ]
}

Spécifier la disponibilité de restaurants avec la prise en charge des tables combinées

Il existe de nombreuses façons pour un restaurant de combiner des tables pour prendre en charge de plus grandes groupes. Vous devez spécifier spots_open et spots_total dans vos flux. de manière à refléter précisément la possibilité ou non d'accepter les parties d'une la taille de l'image. Vous trouverez ci-dessous un exemple de la façon dont vous pouvez spécifier des tables combinées. Le mode de calcul utilisé pour vos flux peut différer légèrement. vous permet de spécifier spots_open et spots_total de manière à ce à votre logique métier.

Si un restaurant prend en charge la combinaison de tables pour former une plus grande partie, vous pouvez Modifiez vos spots_open et spots_total en conséquence.

Disons qu'un restaurant peut combiner deux petites tables pour accueillir un groupe de 7 à 10 personnes personnes.

<ph type="x-smartling-placeholder">
</ph> Figure 3: Plan d&#39;étage sans réservation active
Figure 3:Plan d'étage sans réservations actives

En l'absence de réservation active, les valeurs de party_size, spots_open et spots_total sont:

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

Maintenant, avec le même plan d'étage, une réservation est faite pour un groupe de 10 personnes combine deux petits tableaux.

<ph type="x-smartling-placeholder">
</ph> Figure 4: Plan d&#39;étage avec une réservation active couvrant deux tables
Figure 4:Plan d'étage avec une réservation active pour deux tables

Les valeurs de party_size, spots_open et spots_total sont maintenant les suivantes:

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