Definiciones de los parámetros
Como se especifica en la definición de Availability
:
party_size
: Es el tamaño de grupo que se puede admitir durante este horario disponible. Un restaurante se puede asociar con varios horarios disponibles al mismo tiempo y cada uno especifica unparty_size
diferente si, por ejemplo, pueden sentarse 2, 3 o 4 personas con una reserva.spots_open
: Es la cantidad de cupos disponibles actualmente para esta entrada de disponibilidad.spots_total
: Es la cantidad total de cupos que el comercio tiene para esta configuración (incluidos los que no están disponibles).
Estos tres parámetros funcionan juntos para crear una representación digital del plano del edificio. party_size
es la cantidad de personas que cada tabla puede contener (habrá una entrada para cada tamaño que una tabla pueda admitir). spots_open
y spots_total
son recuentos de cuántas tablas pueden admitir esa party_size
.
Ejemplo de plano de edificio vacío
Imagina un restaurante con el siguiente plano del edificio y sin reservas activas:
![Figura 1: Plano del edificio sin reservas activas](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_1.png?authuser=5&hl=es)
Los valores para party_size
, spots_open
y spots_total
serían los siguientes:
party_size | spots_open | spots_total |
---|---|---|
4 | 3 | 3 |
5 | 3 | 3 |
6 | 4 | 4 |
7 | 1 | 1 |
8 | 1 | 1 |
El feed de disponibilidad de un horario disponible en este comercio se vería de la siguiente manera:
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 } } ] }
Ejemplo de plano del edificio con una reserva
Ahora imagina que una de las mesas redondas se reservó:
![Figura 2: Plano del edificio con una reserva activa](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_2.png?authuser=5&hl=es)
Los valores para party_size
, spots_open
y spots_total
ahora serían los siguientes:
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 } } ] }
Cómo especificar la disponibilidad de restaurantes con compatibilidad para tablas combinadas
Hay muchas formas en que un restaurante puede combinar tablas para admitir grupos más grandes. Se espera que en tus feeds especifiques los valores spots_open
y spots_total
de una manera que refleje con exactitud si puedes aceptar partes de un tamaño determinado. A continuación, se muestra un ejemplo de cómo puedes especificar tablas combinadas.
Tus feeds pueden diferir de cierta forma en la forma en que se realiza este cálculo, y es aceptable que especifiques spots_open
y spots_total
de una manera que coincida con tu lógica empresarial.
Si un restaurante admite la combinación de tablas para formar un grupo más grande, puedes actualizar tu spots_open
y spots_total
para reflejarlo.
Supongamos que un restaurante puede combinar dos mesas pequeñas para sentar a una fiesta de 7 a 10 personas.
![Figura 3: Plano del edificio sin reservas activas](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_1.png?authuser=5&hl=es)
Si no hay reservas activas, los valores de party_size
, spots_open
y spots_total
son los siguientes:
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 |
Ahora, con el mismo plano del edificio, se hace una reserva para un grupo de 10 personas que combina dos mesas pequeñas.
![Figura 4: Plano de edificio con una reserva activa que abarca dos tablas](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_3.png?authuser=5&hl=es)
Entonces, los valores para party_size
, spots_open
y spots_total
ahora son los siguientes:
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 |