-- =====================================================
-- MIGRACION 0019: Correcciones de estructura de BD
-- =====================================================
-- Esta migracion corrige las siguientes deficiencias:
-- 1. Agrega columnas nit y codigo_verificacion a tabla label
-- 2. Crea tabla progreso_proyecto para tracking de auditoria
-- =====================================================

-- =====================================================
-- PARTE 1: Columnas NIT en tabla LABEL (Clientes)
-- =====================================================
-- Estas columnas son requeridas por Label.php y el
-- plugin beztaxcalendar para identificar clientes
-- por su NIT y calcular fechas de vencimiento DIAN
-- =====================================================

ALTER TABLE label ADD COLUMN nit TEXT DEFAULT NULL;
ALTER TABLE label ADD COLUMN codigo_verificacion TEXT DEFAULT NULL;

-- =====================================================
-- PARTE 2: Tabla PROGRESO_PROYECTO
-- =====================================================
-- Esta tabla almacena el progreso de auditoria por proyecto
-- Utilizada por:
--   - ThreadFactory.php (progreso_proyecto, getPorcentajeProyecto)
--   - ajax_handler.php (operaciones CRUD)
--   - thread_report.php (reportes)
-- =====================================================

CREATE TABLE IF NOT EXISTS progreso_proyecto (
    id_progreso INTEGER PRIMARY KEY AUTOINCREMENT,
    proyecto_id INTEGER NOT NULL,
    nombre_submodulo TEXT NOT NULL,
    ruta_submodulo TEXT,
    procesos_ejecucion INTEGER DEFAULT 0,
    mostrar_submodulo INTEGER DEFAULT 1,
    total_requerimientos INTEGER DEFAULT 0,
    requerimientos_terminados INTEGER DEFAULT 0,
    porcentaje_progreso REAL DEFAULT 0,
    fecha_insercion DATETIME DEFAULT CURRENT_TIMESTAMP,
    fecha_actualizacion DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (proyecto_id) REFERENCES thread(id) ON DELETE CASCADE
);

-- Indice para busquedas rapidas por proyecto
CREATE INDEX IF NOT EXISTS progreso_proyecto_idx_proyecto
    ON progreso_proyecto(proyecto_id);

-- Indice para filtrar por visibilidad
CREATE INDEX IF NOT EXISTS progreso_proyecto_idx_mostrar
    ON progreso_proyecto(proyecto_id, mostrar_submodulo);
