-- BI UBE v3.1 - Conciliación inteligente Matrícula ↔ Encuesta
-- Ejecutar UNA SOLA VEZ. No elimina ni modifica respuestas/matrículas existentes.

CREATE TABLE IF NOT EXISTS matricula_encuesta_vinculos (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  periodo_id INT NOT NULL,
  campana_id INT NOT NULL,
  matricula_estudiante_id BIGINT NOT NULL,
  encuesta_id INT NOT NULL,
  metodo VARCHAR(40) NOT NULL DEFAULT 'VALIDADO_MANUAL',
  observacion VARCHAR(255) NULL,
  usuario_id INT NULL,
  activo TINYINT(1) NOT NULL DEFAULT 1,
  fecha_registro DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  fecha_actualizacion DATETIME NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  UNIQUE KEY uk_vinculo_matricula_campana (periodo_id,campana_id,matricula_estudiante_id),
  INDEX idx_vinculo_encuesta (encuesta_id),
  INDEX idx_vinculo_campana (campana_id),
  CONSTRAINT fk_vinculo_periodo FOREIGN KEY (periodo_id) REFERENCES matricula_periodos(id) ON DELETE CASCADE,
  CONSTRAINT fk_vinculo_matricula FOREIGN KEY (matricula_estudiante_id) REFERENCES matricula_estudiantes(id) ON DELETE CASCADE,
  CONSTRAINT fk_vinculo_encuesta FOREIGN KEY (encuesta_id) REFERENCES encuesta_ube(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
