-- Script de migración para agregar el campo features a la tabla planes
-- Ejecutar este script si la tabla planes ya existe sin el campo features

-- Verificar si la columna features existe antes de agregarla
-- Si la columna ya existe, este procedimiento no hará nada
SET @col_exists = (
  SELECT COUNT(*) 
  FROM INFORMATION_SCHEMA.COLUMNS 
  WHERE TABLE_SCHEMA = DATABASE() 
    AND TABLE_NAME = 'planes' 
    AND COLUMN_NAME = 'features'
);

SET @sql = IF(@col_exists = 0,
  'ALTER TABLE planes ADD COLUMN features JSON NULL COMMENT ''Array JSON con las características del plan'' AFTER tipo_pago',
  'SELECT ''La columna features ya existe'' AS message'
);

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- Actualizar planes existentes con sus características
UPDATE planes
SET features = JSON_ARRAY(
  'Consultas ilimitadas incluidas desde el primer día',
  'Ejecución directa sobre Windows 10/11 (64 bits)',
  'Ideal para puestos dedicados en oficina o servidores locales',
  'Soporte prioritario y actualizaciones automáticas'
)
WHERE codigo = 'DESKTOP' AND (features IS NULL OR JSON_LENGTH(features) = 0);

UPDATE planes
SET features = JSON_ARRAY(
  'Acceso multiusuario desde cualquier dispositivo',
  'Historial y evidencia descargable en segundos',
  'Renovación automática y soporte por chat en horario laboral',
  'Upgrade inmediato al plan Premium cuando lo necesites'
)
WHERE codigo = 'ONLINE_ESTANDAR' AND (features IS NULL OR JSON_LENGTH(features) = 0);

UPDATE planes
SET features = JSON_ARRAY(
  'Consultas ilimitadas en la nube con prioridad de procesamiento',
  'Usuarios ilimitados dentro de tu organización',
  'Incluye acompañamiento estratégico y sesiones de revisión',
  'Renovable cada 6 meses manteniendo tu historial'
)
WHERE codigo = 'ONLINE_PREMIUM' AND (features IS NULL OR JSON_LENGTH(features) = 0);

