PROTOTIPO v2 Módulo de Reservas · Agiliza360 · Para revisión del equipo de desarrollo
Julio 2026 · Kike Vera
Datos de Marca
Embudo
Órdenes
Chat
Reservas
📞 51997082359
BOT GLOBAL ON
O
📅 Reservas Vista general de todas las reservas del local
Total Reservas
22
Sem. anterior↑ +20%
Prom. 4 sem.↑ +33%
Total Pax
138
Sem. anterior↑ +14%
Prom. 4 sem.↓ -5%
Confirmadas
18
Sem. anterior↑ +38%
Prom. 4 sem.↑ +20%
Pendientes
4
Sem. anterior↑ +33%
Prom. 4 sem.= igual
No Show
2
Sem. anterior↑ +100%
Prom. 4 sem.↓ -33%
🗓 Rango de fechas
🏠 Local
Estado reserva
Estado asistencia
Tipo de evento
10 resultados · Jul 1–8, 2026
🚨
BUG — Auto-población de asistencia: El sistema está seteando attendance_status = 'no_show' automáticamente cuando pasa la fecha de la reserva. Esto es incorrecto. attendance_status DEBE ser null por defecto y NUNCA se auto-pobla. Solo se actualiza cuando el operador lo registra manualmente desde el panel. Una reserva pasada sin registro = attendance_status permanece null (la columna muestra "—").
📊
DEV — Lógica de comparativos en KPIs: Los comparativos deben ser día-a-día, no semana completa vs semana completa. Ejemplo: si el rango es un solo día (viernes 24 jul) → "Sem. anterior" = viernes 17 jul; "Prom. 4 sem." = promedio de viernes 3, 10, 17 y 24 jun/jul. Si el rango es multi-día → comparar cada día vs mismo día de la semana anterior, sumar y promediar. Total Reservas y Total Pax excluyen Canceladas (solo status IN ('confirmada','pendiente')).
📌
DEV — KPIs y lógica de exclusión: Box 1 (Total Reservas) y Box 2 (Total Pax) = siempre Confirmadas + Pendientes, sin importar filtros. Box 3 = siempre Confirmadas. Box 4 = reactivo al dropdown "Estado reserva": default Pendientes; si se selecciona Confirmada/Cancelada → muestra ese conteo con etiqueta "filtro". Box 5 = reactivo al dropdown "Estado asistencia": default No Show; si se selecciona Sí llegó/Revisar → muestra ese conteo. Los comparativos de cada box se recalculan con el mismo filtro aplicado al período anterior.
Mostrando 9 reservas · Julio 1–8, 2026 · La Calor
Fecha Hora Cliente Pax Evento Estado Asistencia (manual) Acciones
2026-07-0821:00
María Fernanda Márquez
+56 975 296 190
3 🎂 Cumpleaños Pendiente
🗑
2026-07-0821:00
Stefani Quijano Pereira
+51 991 128 892
2 Confirmada Sí llegó
🗑
2026-07-0818:45
Roberto Curasi
+51 949 702 866
2 Confirmada Sí llegó
🗑
2026-07-0720:00
Alexandra Poma
+51 956 742 899
8 🎉 Evento privado Confirmada ⚠ Revisar
🗑
2026-07-0620:00
José Ñaupari
+51 947 513 849
10 Confirmada No Show
🗑
2026-07-0520:00
Andrea Romero Obregón
+51 967 000 076
4 💼 Trabajo Confirmada Sí llegó
🗑
2026-07-0420:30
Alejandra Loyola Salas
+51 923 938 184
3 Cancelada
🗑
2026-07-0220:00
Carlos Herrera Vega
+51 981 234 567
4 Confirmada Sin registrar
← no auto-poblar
🗑
2026-07-0319:00
Romina Lessel
+51 949 344 490
45 🥂 Aniversario Confirmada Sí llegó
🗑
2026-07-0120:00
Evelyn Asencios Falcón
+51 993 081 596
10 Confirmada No Show
🗑
Estado reserva:
Pendiente
Confirmada
Cancelada
Asistencia:
Sí llegó
No Show
Revisar
📋 Notas para Dev
① Dos estados por reserva Campo status (Pendiente/Confirmada/Cancelada) + campo attendance_status (null/llego/no_show/revisar). Ambos independientes. Filtros con AND.
② Tipo de evento Campo event_type enum: cumpleanos, evento_privado, celebracion, aniversario, trabajo, otro, null.
Cuando event_type = evento_privado → quitar la validación de máx. 20 pax en frontend y backend.
③ Notas con timestamp Dos arrays en DB: client_notes[] y operator_notes[]. Cada entrada: {"text": "...", "created_at": ISO8601, "author": "..."}. Solo append, nunca editar ni borrar entradas previas (trazabilidad).
④ Filtros header Reemplazar chips por 2 dropdowns: Estado reserva + Estado asistencia. Añadir tercer dropdown de Tipo de evento.
⑤ Estado "Revisar" Genera alerta en home dashboard. Ver campo review_note en la nota del operador con tag especial. Fila resalta en fondo ámbar en tabla.
⑥ Pax sin límite Validación: si event_type != evento_privado → max_pax = 20. Si event_type = evento_privado → sin límite. Aplicar tanto en frontend como en API.
⑦ Columna Evento en tabla Solo mostrar si tiene valor. Badge con emoji + label.
⑧ 🚨 BUG — attendance_status NUNCA auto-poblar. Default = null. Solo se escribe cuando el operador registra manualmente. Reserva pasada sin registro → columna muestra "—", NO "No Show". Verificar que no haya ningún cron job, trigger o middleware que asigne attendance_status automáticamente por fecha.
⑨ KPI — Comparativos día-a-día Lógica: dado el rango [fecha_inicio, fecha_fin], calcular "período anterior equivalente" = mismo número de días, mismo día de la semana, shiftado 7 días atrás. Para "Prom. 4 sem.": calcular el mismo período en las 4 semanas anteriores y promediar. Ejemplo: rango = viernes 24 jul → sem. anterior = viernes 17 jul; prom. 4 sem. = avg(vie 3 jul, vie 10 jul, vie 17 jul, vie 24 jun).