-- Actualización del esquema para nuevas funcionalidades
USE sistema_convocatorias;

-- Agregar campos para persona jurídica y tipo de persona
ALTER TABLE usuarios 
ADD COLUMN tipo_persona ENUM('natural', 'juridica') DEFAULT 'natural' AFTER rol,
ADD COLUMN razon_social VARCHAR(255) NULL AFTER nombre_completo,
ADD COLUMN nit VARCHAR(50) NULL AFTER razon_social,
ADD COLUMN representante_legal VARCHAR(200) NULL AFTER nit,
ADD COLUMN telefono VARCHAR(20) NULL AFTER email;

-- Agregar campos para habeas data, requisitos y número de finalistas en convocatorias
ALTER TABLE convocatorias
ADD COLUMN habeas_data TEXT NULL AFTER documentos_requeridos,
ADD COLUMN requisitos JSON NULL AFTER habeas_data,
ADD COLUMN numero_finalistas INT DEFAULT 10 AFTER requisitos;

-- Agregar campos de estado y fase en postulaciones
ALTER TABLE postulaciones
MODIFY COLUMN estado ENUM('pendiente', 'en_evaluacion', 'postulado', 'finalista', 'seleccionado', 'rechazada') DEFAULT 'postulado',
ADD COLUMN fase ENUM('inicial', 'finalistas') DEFAULT 'inicial' AFTER estado,
ADD COLUMN puntaje_fase_inicial DECIMAL(5,2) NULL AFTER calificacion_final,
ADD COLUMN puntaje_fase_finalistas DECIMAL(5,2) NULL AFTER puntaje_fase_inicial,
ADD COLUMN posicion_ranking INT NULL AFTER puntaje_fase_finalistas;

-- Agregar campo de fase en calificaciones
ALTER TABLE calificaciones
ADD COLUMN fase ENUM('inicial', 'finalistas') DEFAULT 'inicial' AFTER juez_id;

-- Crear índices para mejorar rendimiento
CREATE INDEX idx_tipo_persona ON usuarios(tipo_persona);
CREATE INDEX idx_fase ON postulaciones(fase);
CREATE INDEX idx_posicion ON postulaciones(posicion_ranking);
CREATE INDEX idx_fase_calificacion ON calificaciones(fase);
