<?php
/* ===============================
   SESIÓN Y SEGURIDAD
   =============================== */
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

if (empty($_SESSION['user_login_status']) || $_SESSION['user_login_status'] != 1) {
    header("Location: ../../login.php");
    exit;
}

/* ===============================
   CONFIGURACIÓN
   =============================== */
require_once __DIR__ . '/db.php';
require_once __DIR__ . '/conexion.php';

$secretKey = TIENDAS_KEY;

/* ===============================
   FUNCIÓN CENTRALIZADA
   =============================== */

function cargarTiendasPorUsuario(
    string $usuario,
    string $secretKey,
    string $modulo = ''
): array
{
    $usuario = strtoupper(trim($usuario));

    /* === Usuarios con acceso total SIEMPRE === */
    $usuariosTodas = ['ALBERTO', 'ALMACEN'];

    
    if ($modulo === 'almacen') {
        return cargarTodasLasTiendas($secretKey);
    }

    /* === Acceso total === */
    if (in_array($usuario, $usuariosTodas, true)) {
        return cargarTodasLasTiendas($secretKey);
    }

    /* === Usuario individual === */
    if (isset(USUARIOS[$usuario])) {

        $codigoTienda = USUARIOS[$usuario]['tienda'];

        if (isset(TIENDAS[$codigoTienda])) {
            return [
                $codigoTienda => formatearTienda(TIENDAS[$codigoTienda], $secretKey)
            ];
        }
    }

    return [];
}

/* ===============================
   FUNCIONES AUXILIARES
   =============================== */

function cargarTodasLasTiendas(string $secretKey): array
{
    $resultado = [];

    foreach (TIENDAS as $codigo => $tienda) {
        $resultado[$codigo] = formatearTienda($tienda, $secretKey);
    }

    return $resultado;
}

function formatearTienda(array $tienda, string $secretKey): array
{
    return [
        'ip'     => $tienda['ip'],
        'ip_enc' => encryptIP($tienda['ip'], $secretKey),
        'nombre' => $tienda['nombre']
    ];
}

/* ===============================
   USO
   =============================== */

$usuario = $_SESSION['user_name'] ?? '';
$tiendas = cargarTiendasPorUsuario(
    $usuario,
    $secretKey,
    $MODULO ?? ''
);

/* ===============================
   TIENDA ACTIVA (SOLO SI NO EXISTE)
   =============================== */

if (
    empty($_SESSION['TIENDA_IP_ENC']) &&
    !empty($tiendas)
) {
    $tiendaActiva = reset($tiendas);

    $_SESSION['TIENDA_IP_REAL'] = $tiendaActiva['ip'];
    $_SESSION['TIENDA_IP_ENC']  = $tiendaActiva['ip_enc'];
    $_SESSION['TIENDA_NOMBRE']  = $tiendaActiva['nombre'];
}

/* ===============================
   VARIABLES DE ACCESO RÁPIDO
   =============================== */

$ip_real       = $_SESSION['TIENDA_IP_REAL'] ?? '';
$ip_enc        = $_SESSION['TIENDA_IP_ENC'] ?? '';
$tienda_nombre = $_SESSION['TIENDA_NOMBRE'] ?? '';
