-- ---------------------------------------------------------------------------
-- Elimina reservacionHabitacionEstadoReplicado (cupo de fuente única).
--
-- Equivalente manual de la migración
--   database/migrations/2026_08_04_140000_drop_estadoreplicado_from_rsv_reservacionhabitacion.php
-- para aplicarlo directo cuando `php artisan migrate` no esté disponible.
--
-- La columna era el espejo local de "lo que creo que Reservaciones V2 ya sabe". Se estampaba en el
-- ENVÍO del snapshot, no en el acuse, así que el portal daba por replicado lo que aún
-- viajaba; y si nada volvía a ensuciar la reservación, se congelaba mintiendo para
-- siempre. Ver PROPUESTA_CUPO_FUENTE_UNICA.md §1.
--
-- ⚠ EJECUTA PRIMERO el diagnóstico de abajo si quieres medir cuánto cupo fantasma había.
-- ---------------------------------------------------------------------------

-- (Opcional, ANTES de borrar) Cuánto crédito fantasma existía:
-- SELECT COUNT(*) AS fantasmas
--   FROM rsv_reservacionhabitacion h
--  WHERE h.reservacionHabitacionEstado = 'Cancelado'
--    AND h.reservacionHabitacionEstadoReplicado IN ('Temporal','Activo')
--    AND NOT EXISTS (SELECT 1 FROM rsv_replicacion r
--                     WHERE r.idReservacion = h.idReservacion
--                       AND r.replicacionEstado IN ('Pendiente','Error'));

-- 1. Basura de la baja lógica: habitaciones Cancelado dentro de reservaciones VIVAS.
--    Las de reservaciones Canceladas se conservan (ahí son la constancia de la baja).
DELETE h
  FROM `rsv_reservacionhabitacion` h
  JOIN `rsv_reservacion` r ON r.`idReservacion` = h.`idReservacion`
 WHERE h.`reservacionHabitacionEstado` = 'Cancelado'
   AND r.`reservacionEstado` IN ('Temporal','Confirmando','Reservado','Finalizado');

-- 2. Fuera la columna espejo.
ALTER TABLE `rsv_reservacionhabitacion`
  DROP COLUMN `reservacionHabitacionEstadoReplicado`;

-- Comprobación
-- SHOW COLUMNS FROM `rsv_reservacionhabitacion`;
