<?php
// Mantenemos la visualización de errores activa para depuración
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

if (!isset($_SESSION['usu_id'])) {
    header("Location: ../login.php");
    exit();
}

// Invocación a tu base de datos nativa
require_once '../modelo/Db.php'; 
$bd = new clsbdd();

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

if ($action === 'guardar') {
    // 1. Captura de datos desde el formulario
    $aca_id = isset($_POST['aca_id']) ? trim($_POST['aca_id']) : '';
    
    // 2. Sanitización estricta usando el método nativo esc() de tu clase clsbdd
    $aca_nombre   = $bd->esc(strtoupper(trim($_POST['aca_nombre'] ?? '')));
    $aca_director = !empty($_POST['aca_director']) ? "'" . $bd->esc(strtoupper(trim($_POST['aca_director']))) . "'" : "NULL";
    $aca_telefono = !empty($_POST['aca_telefono']) ? "'" . $bd->esc(trim($_POST['aca_telefono'])) . "'" : "NULL";
    $aca_ciudad   = !empty($_POST['aca_ciudad']) ? "'" . $bd->esc(strtoupper(trim($_POST['aca_ciudad']))) . "'" : "NULL";

    if (empty($aca_nombre)) {
        header("Location: ../index.php?page=academias_invitadas/listar&status=error&msg=El nombre es requerido");
        exit();
    }

    // FLUJO 1: REGISTRO NUEVO (INSERT)
    if (empty($aca_id) || $aca_id === '') {
        $sql = "INSERT INTO bas_academias_invitadas (aca_nombre, aca_director, aca_telefono, aca_ciudad) 
                VALUES ('$aca_nombre', $aca_director, $aca_telefono, $aca_ciudad)";
    } 
    // FLUJO 2: EDICIÓN (UPDATE)
    else {
        $id_entero = (int)$aca_id;
        $sql = "UPDATE bas_academias_invitadas 
                SET aca_nombre = '$aca_nombre', 
                    aca_director = $aca_director, 
                    aca_telefono = $aca_telefono, 
                    aca_ciudad = $aca_ciudad 
                WHERE aca_id = $id_entero";
    }

    // 3. Ejecución directa mediante tu método nativo ejecutar()
    $res = $bd->ejecutar($sql);

    if ($res) {
        header("Location: ../index.php?page=academias_invitadas/listar&status=success");
        exit();
    } else {
        die("Error operativo: No se pudo procesar la consulta en la base de datos.");
    }
}