# Manual de BWMS

Guía práctica para el día a día. Está organizada por rol, pero cualquiera puede leerla entera para entender el sistema.

---

## 1. Primeros pasos (manager)

1. Entra con tu cuenta y elige tu peluquería en el selector de la barra lateral.
2. Revisa **Ajustes → Ficha del negocio** (dirección, teléfono, CIF, IVA, puestos).
3. Configura **Horarios y puestos**:
   - franjas de apertura por día (puedes usar dos: mañana y tarde);
   - puestos de corte disponibles;
   - granularidad de cita (15 min por defecto);
   - preparación entre citas;
   - antelación mínima y máxima;
   - ventana de anulación gratuita.
4. Crea el **catálogo**: categorías, servicios, duración, precio, IVA y si se puede reservar online.
5. Añade el **equipo**, sus especialidades, comisión y horario semanal.
6. Pulsa **Generar turnos de la semana** en Turnos (o espera al cron) para materializar el cuadrante.
7. Crea tu **token de centralita** y copia el guion generado.
8. Comprueba la **reserva online** desde la ficha pública.

---

## 2. Calendario

- Vistas **Día**, **Semana** y **Mes**.
- En el día, cada columna es un peluquero. Los colores identifican al profesional.
- **Clic en un hueco vacío** → nueva cita con fecha, hora y peluquero precargados.
- **Arrastrar una cita** a otra columna u hora → se mueve y se avisa al cliente.
- La línea roja marca la hora actual.
- En el móvil se muestra la agenda en lista, más cómoda para el peluquero.

Estados: pendiente, confirmada, ha llegado, en servicio, completada, no presentado y cancelada.

---

## 3. Crear una cita

1. **Nueva cita**.
2. Busca al cliente por nombre o teléfono. Si no existe, rellena nombre y teléfono; se crea la ficha automáticamente.
3. Marca uno o varios servicios. La duración y el importe se suman.
4. Elige fecha y pulsa **Ver huecos**.
5. Pulsa un hueco. El sistema rellena la hora.
6. Peluquero:
   - **Automático**: elige al mejor según preferencia, especialidad, carga y reparto.
   - **Manual**: muestra solo los huecos de esa persona.
7. Añade preferencias del cliente (qué quiere, alergias) y notas internas.
8. Guarda. Si el cliente tiene email, recibirá la confirmación con enlace de gestión.

> El sistema nunca permite dos citas solapadas del mismo peluquero ni superar los puestos de corte.

### Cambiar o anular
Desde la cita: **Cancelar** (pide motivo y avisa) o edita fecha/hora. También puedes escribir al cliente desde la ficha.

---

## 4. Cola de espera y walk-ins

- **Añadir a la cola**: nombre, teléfono, servicios, preferencia y prioridad.
- Cada tarjeta muestra la espera, los servicios y **huecos sugeridos**.
- Pulsa un chip de hueco para asignar en un clic.
- **Organizador automático** coloca a todos los clientes que puede.
- El peluquero puede reclamar una entrada desde **Mi día** si tiene hueco.

La cola respeta prioridad y orden de llegada.

---

## 5. Equipo y turnos

### Ficha del peluquero
- Datos, color en la agenda, comisión (%) y coste/hora.
- Servicios que realiza (si no marcas ninguno, se considera que hace todos).
- Cuenta de acceso vinculada (opcional).
- Horario semanal por franjas.
- Ausencias (vacaciones, baja, formación, personal).

### Turnos
- Se generan desde las plantillas semanales.
- Puedes editar horas, puesto y estado.
- **Incidencia**: cambia el estado a *Ausencia* o *Baja*. La agenda deja de ofrecerlo y el panel avisa si tiene citas.
- Si falta alguien, reasigna sus citas desde cada ficha o desde la cola.

---

## 6. Clientes (CRM)

- Búsqueda por nombre, teléfono o email; filtros por segmento (nuevos, VIP, recurrentes, perdidos, cumpleaños) y peluquero preferido.
- Ficha 360°: visitas, gasto, ticket medio, frecuencia, última visita, próximas citas, servicios favoritos y timeline.
- **Preferencias** y **alergias** se muestran al reservar y en la agenda del peluquero.
- Notas internas con autor y fecha.
- Consentimiento de marketing y fecha.
- **Anonimizar (RGPD)**: borra datos personales y conserva importes para contabilidad.

Segmentos:
- Nuevo: sin visitas.
- VIP: 8+ visitas o 300 €+ de gasto.
- Perdido: sin visitar hace más de 120 días.
- Recurrente: 3+ visitas.

---

## 7. Catálogo y ofertas

- Servicios: nombre, categoría, descripción, duración, precio con IVA, IVA específico opcional, visible online y activo.
- Productos: PVP, coste, stock, mínimo, marca, SKU.
- Ofertas: porcentaje, importe o pack; servicio asociado; días de la semana; vigencia; código; activa.
- La centralita usa estos datos para informar de precios y ofertas.

---

## 8. Cobrar y caja

### Cobrar una cita
1. En la cita, **Iniciar servicio** (arranca el cronómetro).
2. **Finalizar y cobrar**.
3. Añade productos con la cantidad.
4. Ajusta descuento o propina.
5. Elige método de pago y **Registrar cobro**.
6. Se crea el ticket, se descuenta stock, se actualiza el cliente y se calcula la comisión.

### Venta directa
**Cobrar** sin cita → añade concepto libre, servicios o productos. Puedes buscar cliente para asociarla.

### Caja
- **Abrir caja** con fondo inicial.
- Al cerrar, introduce el efectivo contado: el sistema calcula la diferencia.
- Historial de cierres con descuadres.
- **Gastos**: categoría, descripción, importe y fecha. Afectan al margen de los informes.

### Comisiones
Se calculan por línea de venta con el % de la ficha del peluquero en el momento del cobro. Se ven en **Mis comisiones** y en los informes.

---

## 9. Informes

Filtros por fecha, ámbito (peluquería, grupo, toda la red) y acceso directo desde el panel.

KPIs:
- Ingresos, tickets, ticket medio, servicios, productos, propinas.
- Citas agendadas, completadas, canceladas y ausencias.
- Ocupación y horas trabajadas.
- Clientes nuevos.
- Comisiones, gastos y margen.
- Llamadas y conversión a cita.

Desgloses:
- Evolución diaria de ingresos.
- Tráfico por hora.
- Rendimiento por peluquero (citas, ingresos, comisión, horas, €/hora).
- Servicios y productos más vendidos.
- Métodos de pago.
- Comparativa por centro (grupo/red).

Exportación: **CSV** y **Excel** desde cada pantalla. También puedes imprimir el informe.

---

## 10. Centralita

- **Tokens API**: crea uno por integración; se muestra solo una vez.
- **Conocimiento**: FAQs, políticas y promociones. El agente las usa para responder.
- **Guion**: genera un prompt completo con datos, precios, horarios, ofertas, políticas y flujo de conversación. Descárgalo en `.txt` o cópialo.
- **Llamadas**: historial con teléfono, cliente, intención, resultado, duración, resumen y transcripción.
- **Correos**: bandeja de salida con estado, error y reintento.

---

## 11. Avisos por email

Se envían si el cliente tiene email y el aviso está activo:

| Aviso | Cuándo |
|---|---|
| Confirmación | Al crear la cita. |
| Cambio | Al mover fecha, hora o peluquero. |
| Anulación | Al cancelar. |
| Recordatorio | X horas antes (cron). |
| Ticket | Al cobrar. |
| Informe diario | Al cerrar el día (cron). |
| Resumen semanal | Lunes (cron, grupos). |
| Invitación | Al crear un usuario. |
| Contraseña | Al solicitar recuperación. |

Sin SMTP configurado, los correos se guardan en `storage/mail`.

---

## 12. Reserva online y autogestión

- `reservar.php?salon=slug` muestra servicios online, huecos reales y formulario.
- El cliente acepta privacidad y recibe confirmación con enlace firmado.
- `gestionar.php` permite ver, cambiar de hora (con huecos) y anular.
- La ventana de anulación se respeta; fuera de plazo se invita a llamar.

---

## 13. Roles y permisos

| Tarea | Admin | Franquicia | Manager | Recepción | Peluquero |
|---|---|---|---|---|---|
| Crear peluquerías | ✅ | ✅ | — | — | — |
| Crear franquicias | ✅ | — | — | — | — |
| Ajustes del centro | ✅ | ✅ | ✅ | — | — |
| Equipo y turnos | ✅ | ✅ | ✅ | — | — |
| Catálogo | ✅ | ✅ | ✅ | ver | ver |
| Agenda y citas | ✅ | ✅ | ✅ | ✅ | solo propias |
| Clientes | ✅ | ✅ | ✅ | ✅ | ver |
| Caja y gastos | ✅ | ver | ✅ | cobrar | cobrar propias |
| Informes | global | grupo | centro | ver | propias |
| Centralita | ✅ | ✅ | ✅ | ver | — |
| Usuarios | ✅ | grupo | centro | — | — |

---

## 14. RGPD y datos

- Marca el consentimiento de marketing solo si el cliente lo ha dado.
- Usa **Anonimizar** para ejercer el derecho de supresión: se conservan importes y fechas, sin datos personales.
- Los enlaces de gestión están firmados; no son adivinables.
- La API exige token por peluquería.
- Exporta y elimina datos cuando corresponda.

---

## 15. Problemas frecuentes

| Síntoma | Causa / solución |
|---|---|
| No aparecen huecos | Sin turnos ese día, servicio demasiado largo, sin puestos libres o antelación mínima. Revisa Turnos y Horarios. |
| Un peluquero no aparece | Turno ausente/baja, está inactivo o no tiene el servicio asignado. |
| No se envían emails | SMTP desactivado o credenciales incorrectas. Revisa Correos y `config.php`. |
| El recordatorio no llega | Cron no configurado o cita sin email. Ejecuta `cron/reminders.php`. |
| No puedo anular una cita | Estado completado/cancelado, o el cliente está fuera de la ventana (usa el panel). |
| Error al instalar | Comprueba permisos de `storage/` y extensiones PHP. |
| El token no funciona | Revocado o de otra peluquería. Crea uno nuevo. |

---

© Zentria · BWMS by Zentria
