cambios profundos

This commit is contained in:
2026-06-20 20:01:40 +02:00
parent 2f5f37c7b4
commit 6f7a9b2b60
21 changed files with 158 additions and 118 deletions
+6 -4
View File
@@ -1,6 +1,6 @@
# May Hair Care — Landing Page + EasyAppointments
# MAY Studio — Landing Page + EasyAppointments
Landing page bonita para May HairCare (Horta, Barcelona) con reservas gestionadas por **EasyAppointments**.
Landing page bonita para MAY Studio (Horta, Barcelona) con reservas gestionadas por **EasyAppointments**.
El frontend (HTML/JS puro) sigue siendo el de la landing, pero **las reservas, clientes y servicios se gestionan completamente con EasyAppointments**.
@@ -64,11 +64,13 @@ El formulario permite seleccionar **varios servicios** (multi-checkbox).
Cómo funciona actualmente con EasyAppointments:
- **UI**: Puedes seleccionar múltiples servicios. Se muestra el resumen con nombres unidos por "+" y la duración total sumada.
- **Comprobación de disponibilidad**: Se consulta el endpoint de EA usando el servicio de **mayor duración** de los seleccionados. EA devuelve los slots libres según ese servicio + el horario del proveedor.
- **Comprobación de disponibilidad**: Se consulta el endpoint de EA usando el servicio de **mayor duración** de los seleccionados. Luego se filtra client-side para exigir un bloque contiguo de la **duración total** (suma de todos).
- Ejemplo: servicios de 45min + 30min → total 75 min. Solo se ofrecen horas de inicio desde las que quepan 75 min seguidos sin solape.
- **Al crear la reserva**:
- Se crea **una sola cita** en EasyAppointments.
- Se usa como `serviceId` el servicio de mayor duración (para que coincida con la disponibilidad consultada).
- Se calcula la hora de fin sumando la **duración total** de todos los servicios seleccionados.
- Se calcula la hora de fin sumando la **duración total** de todos los servicios seleccionados y se envía explícitamente el campo `end`. Así EA bloquea el tiempo completo en el calendario de la empleada.
- Solo una empleada (May) por ahora → el bloque queda reservado y no se puede reservar otra cosa en ese intervalo.
- En el campo `notes` se guarda el detalle completo:
```
Nombre: ...