CREATE TABLE IF NOT EXISTS ojs_configuracion (
  id INT AUTO_INCREMENT PRIMARY KEY,
  ojs_url VARCHAR(255) NOT NULL,
  conferencia_nombre VARCHAR(255) NOT NULL,
  texto_instructivo TEXT NULL,
  modo_validacion ENUM('manual', 'api', 'csv') DEFAULT 'manual',
  permitir_registro_sin_aprobacion TINYINT(1) DEFAULT 0,
  soporte_email VARCHAR(150) NULL,
  soporte_whatsapp VARCHAR(50) NULL,
  activo TINYINT(1) DEFAULT 1,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB;

CREATE TABLE IF NOT EXISTS ponencias_ojs (
  id INT AUTO_INCREMENT PRIMARY KEY,
  usuario_id INT NOT NULL,
  perfil_usuario VARCHAR(100) NOT NULL,
  codigo_ojs VARCHAR(100) UNIQUE NOT NULL,
  titulo_ponencia VARCHAR(255) NOT NULL,
  tipo_trabajo ENUM('articulo', 'microarticulo', 'resumen') NOT NULL,
  eje_tematico_id INT NOT NULL,
  sede_id INT NULL,
  modalidad ENUM('virtual', 'presencial') NOT NULL,
  estado_ponencia ENUM('sin_envio_ojs', 'enviado_ojs', 'en_revision', 'correcciones', 'aprobado_ojs', 'rechazado_ojs') DEFAULT 'enviado_ojs',
  archivo_aprobacion VARCHAR(255) NULL,
  observacion_usuario TEXT NULL,
  observacion_admin TEXT NULL,
  fecha_envio_ojs DATETIME NULL,
  fecha_aprobacion_ojs DATETIME NULL,
  validado_por INT NULL,
  validado_at DATETIME NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  FOREIGN KEY(usuario_id) REFERENCES usuarios(id) ON DELETE CASCADE,
  FOREIGN KEY(eje_tematico_id) REFERENCES ejes_tematicos(id) ON DELETE RESTRICT,
  FOREIGN KEY(sede_id) REFERENCES sedes(id) ON DELETE SET NULL,
  FOREIGN KEY(validado_por) REFERENCES usuarios(id) ON DELETE SET NULL
) ENGINE=InnoDB;

CREATE TABLE IF NOT EXISTS auditoria_ojs (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  usuario_id INT NULL,
  admin_id INT NULL,
  ponencia_id INT NULL,
  accion VARCHAR(100) NOT NULL,
  estado_anterior VARCHAR(50) NULL,
  estado_nuevo VARCHAR(50) NULL,
  descripcion TEXT NULL,
  ip VARCHAR(50) NULL,
  user_agent VARCHAR(255) NULL,
  hash_evento CHAR(64) NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY(usuario_id) REFERENCES usuarios(id) ON DELETE SET NULL,
  FOREIGN KEY(admin_id) REFERENCES usuarios(id) ON DELETE SET NULL,
  FOREIGN KEY(ponencia_id) REFERENCES ponencias_ojs(id) ON DELETE SET NULL
) ENGINE=InnoDB;

-- Configuración por defecto
INSERT IGNORE INTO ojs_configuracion (id, ojs_url, conferencia_nombre, texto_instructivo, modo_validacion, permitir_registro_sin_aprobacion, soporte_email, soporte_whatsapp, activo)
VALUES (1, 'https://ojs.example.com', 'I Congreso Internacional ATENEA 2026', 'Por favor envíe su resumen o artículo en la plataforma OJS y copie aquí el código asignado por la plataforma.', 'manual', 0, 'soporte@atenea.edu.ec', '0990000000', 1);
