<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

include("conexion.php");
session_start();

// Establecer el tipo de contenido para JSON
header('Content-Type: application/json');

// Establecer la codificación de la conexión a la base de datos en UTF-8
$conexion->set_charset("utf8mb4");

// Validar sesión
if (!isset($_SESSION['id_usuario'])) {
    echo json_encode(['status' => 'error', 'message' => 'Sesión no válida.']);
    exit;
}

// Obtener datos del usuario actual
$id_usuario = $_SESSION['id_usuario'];
$usuario_query = $conexion->query("SELECT * FROM usuarios_sistema WHERE id_usuario = $id_usuario");

if ($usuario_query->num_rows == 0) {
    echo json_encode(['status' => 'error', 'message' => 'Usuario no encontrado.']);
    exit;
}

$usuario = $usuario_query->fetch_assoc();
$rol_actual = $usuario['rol'];
$id_empresa_usuario = $usuario['id_empresa'];

// Consulta para obtener los usuarios
$usuarios_query = null;
if ($rol_actual === 'admin_general') {
    $usuarios_query = $conexion->query("SELECT * FROM usuarios_sistema");
} elseif ($rol_actual === 'admin_empresa') {
    $usuarios_query = $conexion->query("SELECT * FROM usuarios_sistema WHERE id_empresa = $id_empresa_usuario");
}

// Verificar si la consulta devuelve resultados
if ($usuarios_query === false) {
    echo json_encode(['status' => 'error', 'message' => 'Error en la consulta SQL: ' . $conexion->error]);
    exit;
}

// Procesar resultados
$usuarios = [];
while ($fila = $usuarios_query->fetch_assoc()) {
    $usuarios[] = $fila;
}

// Asegúrate de que los datos estén correctos antes de enviarlos como JSON
echo json_encode([
    'status' => 'success',
    'data' => $usuarios
]);
?>
