<?php

namespace App\Support;

use App\Models\Company;

/**
 * Helper estático para acceder/definir el tenant actual durante el ciclo de
 * vida del request. El middleware ResolveTenant llama a Tenant::set($company)
 * y todo el código posterior puede consultarlo con Tenant::current().
 */
class Tenant
{
    protected static ?Company $current = null;

    /** Setea la empresa activa del request actual. */
    public static function set(?Company $company): void
    {
        static::$current = $company;
    }

    /** Devuelve la empresa activa, o null si no hay (rutas globales / super admin). */
    public static function current(): ?Company
    {
        return static::$current;
    }

    public static function id(): ?int
    {
        return static::$current?->id;
    }

    public static function check(): bool
    {
        return static::$current !== null;
    }

    public static function clear(): void
    {
        static::$current = null;
    }
}
