-- ============================================================
-- RUBEN: reservas - exclusividad y cupos por área.
--
-- Agrega a event_reserva (tabla de áreas comunes, una por cada
-- residencia) dos columnas nuevas:
--
--   es_exclusivo: 1 = una reserva bloquea el horario para todos los
--                 demás (ej. Club House, Salón de eventos).
--                 0 = varios residentes pueden reservar el mismo
--                 horario (ej. gimnasio), sujeto a cupo_maximo.
--   cupo_maximo:  máximo de reservas simultáneas permitidas en un
--                 mismo horario cuando es_exclusivo = 0.
--                 NULL = sin límite.
--
-- Por defecto todas las áreas (nuevas y existentes) quedan en
-- es_exclusivo = 1 (la opción segura: evita que se choquen dos
-- reservas). Revisamos el historial de reservas (events_prueba) y
-- es inconsistente incluso dentro de la misma área (ej. Club House
-- tiene reservas pasadas con ambos valores), así que NO se puede
-- inferir automáticamente cuál área debería ser 0 — hay que
-- revisarlo manualmente por área después de correr este script,
-- para las que sí permiten reservas compartidas (ej. gimnasios).
--
-- Ejecutar este bloque en CADA una de las 10 bases de residencia
-- (todas viven en el mismo servidor 64.120.78.162).
-- ============================================================

-- 1) CALERA VIII
USE `uclubperu_rentalmanagement_lacalera`;
ALTER TABLE `event_reserva`
  ADD COLUMN `es_exclusivo` TINYINT(1) NOT NULL DEFAULT 1
    COMMENT '1=bloquea el horario para todos, 0=varios residentes pueden reservar el mismo horario',
  ADD COLUMN `cupo_maximo` INT NULL DEFAULT NULL
    COMMENT 'Maximo de reservas simultaneas por horario cuando es_exclusivo=0. NULL = sin limite.';

-- 2) CORAL TOWER
USE `uclubperu_rentalmanagement_coral`;
ALTER TABLE `event_reserva`
  ADD COLUMN `es_exclusivo` TINYINT(1) NOT NULL DEFAULT 1
    COMMENT '1=bloquea el horario para todos, 0=varios residentes pueden reservar el mismo horario',
  ADD COLUMN `cupo_maximo` INT NULL DEFAULT NULL
    COMMENT 'Maximo de reservas simultaneas por horario cuando es_exclusivo=0. NULL = sin limite.';

-- 3) INSPIRA
USE `uclubperu_rentalmanagement_inspira`;
ALTER TABLE `event_reserva`
  ADD COLUMN `es_exclusivo` TINYINT(1) NOT NULL DEFAULT 1
    COMMENT '1=bloquea el horario para todos, 0=varios residentes pueden reservar el mismo horario',
  ADD COLUMN `cupo_maximo` INT NULL DEFAULT NULL
    COMMENT 'Maximo de reservas simultaneas por horario cuando es_exclusivo=0. NULL = sin limite.';

-- 4) FRONT TOWER
USE `uclubperu_rentalmanagement_fronttower`;
ALTER TABLE `event_reserva`
  ADD COLUMN `es_exclusivo` TINYINT(1) NOT NULL DEFAULT 1
    COMMENT '1=bloquea el horario para todos, 0=varios residentes pueden reservar el mismo horario',
  ADD COLUMN `cupo_maximo` INT NULL DEFAULT NULL
    COMMENT 'Maximo de reservas simultaneas por horario cuando es_exclusivo=0. NULL = sin limite.';

-- 5) LEON GARCIA
USE `uclubperu_rentalmanagement_leongarcia`;
ALTER TABLE `event_reserva`
  ADD COLUMN `es_exclusivo` TINYINT(1) NOT NULL DEFAULT 1
    COMMENT '1=bloquea el horario para todos, 0=varios residentes pueden reservar el mismo horario',
  ADD COLUMN `cupo_maximo` INT NULL DEFAULT NULL
    COMMENT 'Maximo de reservas simultaneas por horario cuando es_exclusivo=0. NULL = sin limite.';

-- 6) PARQUE SURCO
USE `uclubperu_rentalmanagement_elparque`;
ALTER TABLE `event_reserva`
  ADD COLUMN `es_exclusivo` TINYINT(1) NOT NULL DEFAULT 1
    COMMENT '1=bloquea el horario para todos, 0=varios residentes pueden reservar el mismo horario',
  ADD COLUMN `cupo_maximo` INT NULL DEFAULT NULL
    COMMENT 'Maximo de reservas simultaneas por horario cuando es_exclusivo=0. NULL = sin limite.';

-- 7) PASEO MONTERRICO
USE `uclubperu_rentalmanagement_paseo_monterrico`;
ALTER TABLE `event_reserva`
  ADD COLUMN `es_exclusivo` TINYINT(1) NOT NULL DEFAULT 1
    COMMENT '1=bloquea el horario para todos, 0=varios residentes pueden reservar el mismo horario',
  ADD COLUMN `cupo_maximo` INT NULL DEFAULT NULL
    COMMENT 'Maximo de reservas simultaneas por horario cuando es_exclusivo=0. NULL = sin limite.';

-- 8) PRIVE
USE `uclubperu_rentalmanagement_prive`;
ALTER TABLE `event_reserva`
  ADD COLUMN `es_exclusivo` TINYINT(1) NOT NULL DEFAULT 1
    COMMENT '1=bloquea el horario para todos, 0=varios residentes pueden reservar el mismo horario',
  ADD COLUMN `cupo_maximo` INT NULL DEFAULT NULL
    COMMENT 'Maximo de reservas simultaneas por horario cuando es_exclusivo=0. NULL = sin limite.';

-- 9) ALTUARS
USE `uclubperu_rentalmanagement_altuars`;
ALTER TABLE `event_reserva`
  ADD COLUMN `es_exclusivo` TINYINT(1) NOT NULL DEFAULT 1
    COMMENT '1=bloquea el horario para todos, 0=varios residentes pueden reservar el mismo horario',
  ADD COLUMN `cupo_maximo` INT NULL DEFAULT NULL
    COMMENT 'Maximo de reservas simultaneas por horario cuando es_exclusivo=0. NULL = sin limite.';

-- 10) ORIZZON II
USE `uclubperu_rentalmanagement_orizzon`;
ALTER TABLE `event_reserva`
  ADD COLUMN `es_exclusivo` TINYINT(1) NOT NULL DEFAULT 1
    COMMENT '1=bloquea el horario para todos, 0=varios residentes pueden reservar el mismo horario',
  ADD COLUMN `cupo_maximo` INT NULL DEFAULT NULL
    COMMENT 'Maximo de reservas simultaneas por horario cuando es_exclusivo=0. NULL = sin limite.';

-- ------------------------------------------------------------
-- Después de correr esto, revisa manualmente qué áreas deberían
-- quedar en es_exclusivo = 0 (uso compartido). Ejemplo, si en
-- Altuars el gimnasio es compartido:
--
-- USE `uclubperu_rentalmanagement_altuars`;
-- UPDATE `event_reserva` SET `es_exclusivo` = 0 WHERE `reserva_name` LIKE '%Gimnasio%';
-- ------------------------------------------------------------
