<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

// Carga absoluta y segura de la clase de conexión a la base de datos
require_once __DIR__ . '/../modelo/Db.php'; 
$bd = new clsbdd();

$action = $_GET['action'] ?? '';

switch ($action) {
    case 'guardar_nivel':
        $nvc_id = $_POST['nvc_id'] ?? '';
        $categoria = strtoupper($bd->esc($_POST['nvc_categoria'] ?? ''));
        $rango = strtoupper($bd->esc($_POST['nvc_rango'] ?? ''));
        $estado = $_POST['nvc_estado'] ?? 'ACTIVO';

        // Validación rápida para evitar registros vacíos si se salta el HTML5
        if (empty($categoria) || empty($rango)) {
            header("Location: ../index.php?page=competencias/config_niveles&error=missing");
            exit();
        }

        if (empty($nvc_id)) {
            // NUEVO REGISTRO: Insertar nueva combinación Categoría / Rango
            $sql = "INSERT INTO bas_niveles_config (nvc_categoria, nvc_rango, nvc_estado) 
                    VALUES ('$categoria', '$rango', '$estado')";
        } else {
            // EDICIÓN: Actualizar el registro existente
            $sql = "UPDATE bas_niveles_config 
                    SET nvc_categoria='$categoria', nvc_rango='$rango', nvc_estado='$estado' 
                    WHERE nvc_id='$nvc_id'";
        }
        
        $bd->ejecutar($sql);
        
        // Redirección limpia de vuelta a la vista dentro de index.php
        header("Location: ../index.php?page=competencias/config_niveles");
        exit();

    default:
        // Por seguridad, si no coincide ninguna acción, regresa a la vista
        header("Location: ../index.php?page=competencias/config_niveles");
        exit();
}
?>