namespace Tiku.Application.Security;

public enum CapabilityOperation
{
    Read,
    Write
}

public interface ICapabilityAccessEvaluator
{
    Task<bool> IsAllowedAsync(
        Guid tenantId,
        string moduleCode,
        CapabilityOperation operation,
        CancellationToken cancellationToken = default);

    Task<IReadOnlySet<string>> GetEnabledModulesAsync(
        Guid tenantId,
        CapabilityOperation operation = CapabilityOperation.Read,
        CancellationToken cancellationToken = default);
}
