<?php
session_start();
if(!isset($_SESSION['admin']) || ($_SESSION['rol'] ?? '') !== 'tics'){
    header("Location: login.php");
    exit;
}

if($_SERVER['REQUEST_METHOD'] !== 'POST'){
    header("Location: usuarios.php");
    exit;
}

include("conexion.php");

if(!validar_csrf($_POST['csrf_token'] ?? '')){
    $_SESSION['mensaje'] = ['tipo' => 'error', 'texto' => 'Token de seguridad inválido.'];
    header("Location: usuarios.php");
    exit;
}

$id = intval($_POST['id'] ?? 0);

if($id <= 0){
    $_SESSION['mensaje'] = ['tipo' => 'error', 'texto' => 'ID de usuario inválido.'];
    header("Location: usuarios.php");
    exit;
}

// Proteger al superusuario actual (no puede eliminarse a sí mismo)
$check = $conexion->prepare("SELECT usuario, rol FROM usuarios WHERE id = ?");
$check->bind_param("i", $id);
$check->execute();
$user_data = $check->get_result()->fetch_assoc();
$check->close();

if(!$user_data){
    $_SESSION['mensaje'] = ['tipo' => 'error', 'texto' => 'Usuario no encontrado.'];
    header("Location: usuarios.php");
    exit;
}

if($user_data['usuario'] === $_SESSION['admin']){
    $_SESSION['mensaje'] = ['tipo' => 'error', 'texto' => 'No puede eliminar su propia cuenta.'];
    header("Location: usuarios.php");
    exit;
}

$stmt = $conexion->prepare("DELETE FROM usuarios WHERE id = ?");
$stmt->bind_param("i", $id);

if($stmt->execute()){
    unset($_SESSION['csrf_token']);
    $_SESSION['mensaje'] = ['tipo' => 'exito', 'texto' => 'Usuario "' . htmlspecialchars($user_data['usuario']) . '" eliminado.'];
} else {
    $_SESSION['mensaje'] = ['tipo' => 'error', 'texto' => 'Error al eliminar el usuario.'];
}

$stmt->close();
header("Location: usuarios.php");
exit;
?>
