using DotBased.AspNet.Authority.Models; using DotBased.AspNet.Authority.Models.Authority; using DotBased.Monads; namespace DotBased.AspNet.Authority.Repositories; public interface IRoleRepository { public Task>> GetRolesAsync(int limit = 20, int offset = 0, string search = "", CancellationToken cancellationToken = default); public Task> GetRoleByIdAsync(Guid id, CancellationToken cancellationToken = default); public Task> CreateRoleAsync(AuthorityRole role, CancellationToken cancellationToken = default); public Task> UpdateRoleAsync(AuthorityRole role, CancellationToken cancellationToken = default); public Task DeleteRolesAsync(List roles, CancellationToken cancellationToken = default); public Task AddRolesLinkAsync(List roles, Guid linkId, CancellationToken cancellationToken = default); public Task>> GetLinkedRolesAsync(List linkIds, CancellationToken cancellationToken = default); public Task DeleteRolesLinkAsync(List roles, Guid linkId, CancellationToken cancellationToken = default); /// /// Return the role ids the linkId has. /// /// /// /// /// public Task>> HasRolesAsync(Guid linkId, List roles, CancellationToken cancellationToken = default); }