using mws.backend.dotnet.application.Common; using mws.backend.dotnet.domain.Roles; namespace mws.backend.dotnet.application.Common.Repositories; public interface IRoleRepository : IRepository { Task> GetAllWithPermissionsAsync(int page, int pageSize, CancellationToken ct = default); Task GetByIdWithPermissionsAsync(Guid id, CancellationToken ct = default); Task GetByIdAsync(Guid id, CancellationToken ct = default); Task ExistsByNameAsync(string name, Guid? excludeId, CancellationToken ct = default); Task GetPermissionAsync(Guid roleId, string screen, CancellationToken ct = default); Task> GetPermissionsAsync(Guid roleId, CancellationToken ct = default); Task> GetPermissionsForRolesAsync(IEnumerable roleIds, CancellationToken ct = default); void RemovePermissions(IEnumerable permissions); }