using Meezi.Core.Authorization;
using Meezi.Core.Enums;
namespace Meezi.Core.Interfaces;
public interface ITenantContext
{
string? UserId { get; }
string? CafeId { get; }
EmployeeRole? Role { get; }
PlanTier? PlanTier { get; }
string? Language { get; }
/// Active branch from JWT when employee is branch-scoped.
string? BranchId { get; }
bool IsSystemAdmin { get; }
bool IsAuthenticated { get; }
bool IsCafeOwner => Role == EmployeeRole.Owner;
///
/// When non-null the employee has a custom role. These permissions override the static
/// matrix; the base still governs
/// café-wide vs. branch-scoped behaviour.
///
IReadOnlySet? CustomPermissions { get; }
}