Recetas por negocio
Cómo modelar una barbería, un centro de estética, un consultorio, un restaurante y entregas.
Cada receta corresponde a un modelo listo que elegís en el onboarding.
Barbería
Cada barbero es un recurso staff exclusive con su propio horario. Un grupo, customer_choice con round_robin como alternativa.
{
"name": "Corte",
"duration_min": 30,
"step_min": 15,
"buffer_after_min": 5,
"price_cents": 5000,
"requirements": [{ "resource_group_id": "grp_barbers", "units": 1 }]
}
Estética
Profesionales, máquinas y cabinas son recursos separados. El servicio pide los tres al mismo tiempo, así que el más escaso (casi siempre la máquina) limita la agenda.
{
"name": "Depilación láser",
"duration_min": 45,
"buffer_after_min": 10,
"price_cents": 18000,
"deposit_cents": 5000,
"requirements": [
{ "resource_group_id": "grp_professionals", "units": 1 },
{ "resource_group_id": "grp_lasers", "units": 1 },
{ "resource_group_id": "grp_rooms", "units": 1 }
]
}
Clínica
Médico más consultorio, por sede (un workspace por sede). Los datos de salud son sensibles: el asistente nunca pregunta síntomas y el formulario pide solo lo necesario para reservar.
{
"name": "Consulta",
"duration_min": 30,
"buffer_after_min": 10,
"intake_form": { "type": "object", "properties": { "obra_social": { "type": "string" } } },
"requirements": [
{ "resource_group_id": "grp_doctors", "units": 1 },
{ "resource_group_id": "grp_offices", "units": 1 }
]
}
Restaurante
El salón es un recurso pooled con 40 unidades (cubiertos) por turno. La duración crece con el tamaño del grupo, y los grupos grandes pagan seña.
{
"name": "Mesa",
"step_min": 30,
"duration_by_units": [
{ "max_units": 2, "duration_min": 90 },
{ "max_units": 4, "duration_min": 120 },
{ "max_units": 20, "duration_min": 150 }
],
"requirements": [{ "resource_group_id": "grp_dining_room", "units": "party_size" }]
}
El modo mesas (mesas puntuales con tamaño mínimo y máximo, y combinaciones) está en el roadmap.
Entregas
Cada zona es un recurso pooled con capacidad por ventana de 2 horas. La zona se elige por código postal, y una regla de corte cierra las ventanas del mismo día al mediodía.
{
"name": "Entrega",
"window_mode": true,
"duration_min": 120,
"cutoff_rule": { "same_day_until": "12:00" },
"intake_form": { "type": "object", "required": ["address", "postal_code"] },
"requirements": [{ "resource_group_id": "grp_zones", "units": 1, "select_by": "postal_code" }]
}