Para mostrar seus horários no fluxo de reserva, envie um mapeamento preciso e atualizado do seu inventário. O número de vagas disponíveis pode mudar significativamente após uma única reserva devido à natureza dos restaurantes e à capacidade de juntar mesas ou ao tamanho do grupo. Os exemplos neste documento mostram como manter e mapear seu inventário disponível corretamente.
Confira abaixo os parâmetros especificados no
Availability definition:
party_size: o tamanho do grupo que o estabelecimento pode acomodar neste horário. Os diagramas neste artigo mostram as várias maneiras de configurar o tamanho do grupo.spots_open: o número de mesas disponíveis para um determinado horário e tamanho de grupo.spots_total: o número total de tabelas que o comerciante tem para essa configuração, incluindo as tabelas indisponíveis.
Esses três parâmetros trabalham juntos para criar uma representação digital da planta baixa. party_size é o número de pessoas que cada mesa pode acomodar. Há uma entrada para cada tamanho que uma tabela pode acomodar. spots_open e spots_total são contagens de tabelas que podem acomodar esse party_size.
Exemplo de planta baixa vazia
Imagine um restaurante com a seguinte planta e sem reservas ativas:

Figura 1. Planta baixa sem reservas ativas.
Estes são os valores para party_size, spots_open e spots_total:
| party_size | spots_open | spots_total |
|---|---|---|
| 4 | 3 | 3 |
| 5 | 3 | 3 |
| 6 | 4 | 4 |
| 7 | 1 | 1 |
| 8 | 1 | 1 |
O feed de disponibilidade para um horário específico desse comerciante é assim:
{
"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
}
}
]
}
Exemplo de planta baixa com uma reserva
Um restaurante com uma das mesas redondas reservadas anteriormente é o seguinte:

Figura 2. Planta baixa com uma reserva ativa.
Estes são os valores para party_size, spots_open e spots_total:
| party_size | spots_open | spots_total |
|---|---|---|
| 4 | 2 | 3 |
| 5 | 2 | 3 |
| 6 | 3 | 4 |
| 7 | 1 | 1 |
| 8 | 1 | 1 |
O feed de disponibilidade para um horário específico desse comerciante é assim:
{
"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
}
}
]
}
Especificar a disponibilidade de restaurantes com suporte a tabelas combinadas
Há muitas maneiras de um restaurante combinar mesas para atender a grupos maiores. Você precisa especificar spots_open e spots_total de uma forma que
reflita com precisão se você pode aceitar grupos de um determinado tamanho.
Confira a seguir um exemplo de como especificar a combinação de tabelas. Seus feeds podem variar de acordo com o método de cálculo usado. É aceitável especificar spots_open e spots_total de uma forma que corresponda à lógica da sua empresa.
Se um restaurante permitir a combinação de mesas para formar um grupo maior, atualize
seus spots_open e spots_total para refletir isso.
Por exemplo, um restaurante que pode combinar duas mesas pequenas para acomodar um grupo de 7 a 10 pessoas:

Figura 3. Planta baixa sem reservas ativas.
Se não houver reservas ativas, estes serão os valores de party_size, spots_open e spots_total:
| 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 |
Agora, com a mesma planta, uma reserva é feita para um grupo de dez pessoas que combina duas mesas pequenas.

Figura 4. Planta baixa com uma reserva ativa em duas mesas.
Então, os valores de party_size, spots_open e spots_total são os seguintes:
| 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 |