namespace foodmarket.Application.Common.Tenancy;

public interface ITenantContext
{
    Guid? OrganizationId { get; }
    bool IsAuthenticated { get; }
    bool IsSuperAdmin { get; }
    /// <summary>SuperAdmin зашёл в режим «открыто как…» через X-Org-Override.
    /// В этом режиме query-filter ОБЯЗАН применяться (по выбранной orgId),
    /// иначе SuperAdmin'у возвращаются записи всех орг — нарушение изоляции.</summary>
    bool IsTenantOverride { get; }

    /// <summary>Id текущего пользователя (sub claim в JWT). null для системных
    /// операций без аутентификации (seed, фоновые джобы). Используется
    /// для аудит-лога — кто инициировал мутацию.</summary>
    Guid? UserId { get; }
}
