# Fase 19 — Auditoría integral del Core SIHO PMS

## Correcciones aplicadas

- Se eliminó la transición directa `OCUPADO → DISPONIBLE`. Toda salida debe pasar por `PARA LIMPIEZA`.
- El check-out usa el motor central de estados para culminar la reserva y enviar la habitación a limpieza.
- El cambio de habitación deja la habitación anterior en `PARA LIMPIEZA`, no en `DISPONIBLE`.
- La habitación nueva se valida y cambia mediante el motor de estados.
- El alta de reservas/hospedajes valida la transición de la habitación desde `DISPONIBLE`.
- El flujo de limpieza valida `PARA LIMPIEZA → LIMPIEZA → DISPONIBLE`.
- Se añadieron pruebas unitarias para estados y renderizado de folios.
- Se añadió un parche de índices para consultas críticas.

## Validaciones ejecutables

```bash
php artisan test --testsuite=Unit
php artisan route:list
php artisan config:cache
```

## Alcance real de esta fase

La revisión estática y de sintaxis puede ejecutarse sin una base operativa. Las pruebas integrales con reservas, caja y reportes requieren instalar la plantilla en un entorno de ensayo con MySQL y datos de prueba.
