-- Script para añadir campos de reserva a asterisk.agentes
-- Fecha: 31/07/2025
-- Propósito: Sincronización bidireccional de estados de reserva

-- Añadir campos para gestión de reservas
ALTER TABLE asterisk.agentes 
ADD COLUMN IF NOT EXISTS reserved_for VARCHAR(100) DEFAULT NULL COMMENT 'Usuario/Cliente que reservó el agente',
ADD COLUMN IF NOT EXISTS reserved_until DATETIME DEFAULT NULL COMMENT 'Hasta cuándo está reservado',
ADD COLUMN IF NOT EXISTS reservation_type ENUM('solicitud', 'reserva', 'repeticion') DEFAULT NULL COMMENT 'Tipo de reserva',
ADD COLUMN IF NOT EXISTS reservation_id INT DEFAULT NULL COMMENT 'ID de la reserva/solicitud en panel_tarot',
ADD COLUMN IF NOT EXISTS last_reservation_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Última actualización de reserva';

-- Crear índices para optimización
CREATE INDEX IF NOT EXISTS idx_reserved_until ON asterisk.agentes(reserved_until);
CREATE INDEX IF NOT EXISTS idx_reservation_type ON asterisk.agentes(reservation_type);

-- Verificar que los campos se crearon correctamente
SELECT 
    'Campos añadidos exitosamente' as mensaje,
    COUNT(*) as total_columnas
FROM information_schema.COLUMNS 
WHERE table_schema = 'asterisk' 
  AND table_name = 'agentes'
  AND column_name IN ('reserved_for', 'reserved_until', 'reservation_type', 'reservation_id');