<?php
/**
 * SAC 2026 - MODULARITY GETTER v1.5
 * Kernel V4.2.04 MC/MB
 */
require_once 'config.php';
if (!isset($_SESSION['user_id'])) response(["error" => "No autorizado"], 401);

try {
    // Auto-reparación del Kernel: Asegura que los nuevos módulos existan
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('confirmacion-pago-cuota', 'Confirmación de Pago de Cuota', 1)");
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('congratulate-owner', 'Felicitar al Propietario', 1)");
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('owner-reminder', 'Recordatorio al Propietario', 1)");
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('saldo-desglosado', 'Saldo Desglosado', 1)");
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('saldo-desglosado-avanzado', 'Saldo Desglosado Avanzado', 1)");
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('detailed-account-status', 'Estado de Cuenta Detallado', 1)");
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('statement-analyzer-bnc', 'Analizador Estados BNC', 1)");
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('bank-reconciliation-bnc', 'Banco vs Banco BNC', 1)");
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('credit-balances', 'Saldos a Favor', 1)");
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('individual-fee-html-large', 'Cuota por Usuario Individual HTML Grande', 1)");
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('payment-report', 'Reporte de Pago', 1)");
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('debt-list', 'Listado de Deudores', 1)");
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('payment-receipt', 'Recibo de Pago', 1)");
    $pdo->exec("INSERT IGNORE INTO system_modules (id, label, is_active) VALUES ('banplus-commissions', 'Comisiones Banplus desde Estado Cuenta', 1)");
    
    // Asegurar columna credit_balance en properties
    $pdo->exec("ALTER TABLE `properties` ADD COLUMN IF NOT EXISTS `credit_balance` DECIMAL(12, 2) NOT NULL DEFAULT 0.00");
    
    // Actualizar etiquetas para BanPlus
    $pdo->exec("UPDATE system_modules SET label = 'Analizador Estados BanPlus' WHERE id = 'statement-analyzer'");
    $pdo->exec("UPDATE system_modules SET label = 'Banco VS Banco BanPlus' WHERE id = 'bank-reconciliation'");
    $pdo->exec("UPDATE system_modules SET label = 'Analizador Detallado BanPlus' WHERE id = 'statement-detailed'");
    
    $stmt = $pdo->query("SELECT id, label, is_active as isActive FROM system_modules ORDER BY label ASC");
    $modules = $stmt->fetchAll();
    foreach($modules as &$m) {
        $m['isActive'] = $m['isActive'] ? true : false;
    }
    response($modules);
} catch (PDOException $e) {
    response(["error" => "Fallo en consulta de módulos: " . $e->getMessage()], 500);
}
?>