namespace CMSMicroservice.Application.Common.Authorization;

/// <summary>
/// سرویس بررسی مجوز کاربر بر اساس نقش‌های JWT
/// </summary>
public interface IPermissionService
{
    /// <summary>
    /// دریافت نقش‌های کاربر فعلی از JWT Claims
    /// </summary>
    Task<IReadOnlyList<string>> GetUserRolesAsync(CancellationToken cancellationToken);

    /// <summary>
    /// بررسی اینکه آیا کاربر فعلی مجوز مشخصی دارد
    /// </summary>
    Task<bool> HasPermissionAsync(string permission, CancellationToken cancellationToken);
}
