<?php

declare(strict_types=1);

namespace App\Middleware;

use App\Core\Request;
use App\Core\Session;
use App\Core\Tenant;

class TenantMiddleware implements MiddlewareInterface
{
    public function handle(Request $request, callable $next, array $params = []): mixed
    {
        if (!Tenant::ensure()) {
            $reason = (string) Session::get('tenant_block_reason', 'Debes seleccionar una empresa válida antes de usar este módulo.');
            flash('error', $reason);
            redirect('empresas/seleccionar');
        }

        return $next($request);
    }
}
