using mws.backend.dotnet.application.Common; using mws.backend.dotnet.application.Users; using mws.backend.dotnet.domain.Users; namespace mws.backend.dotnet.application.Common.Repositories; public interface IUserRepository : IRepository { Task GetByIdAsync(Guid id, CancellationToken ct = default); Task GetByIdWithRoleAsync(Guid id, CancellationToken ct = default); Task GetByUsernameWithRoleAsync(string username, CancellationToken ct = default); Task ExistsByUsernameAsync(string username, CancellationToken ct = default); Task ExistsByRoleIdAsync(Guid roleId, CancellationToken ct = default); Task> GetRoleIdsAsync(Guid userId, CancellationToken ct = default); Task> SearchWithRoleAsync(string? term, int? take, CancellationToken ct = default); Task> SearchWithRolePagedAsync(UserListFilter filter, int page, int pageSize, CancellationToken ct = default); }