using DotBased.AspNet.Authority.Models.Authority; namespace DotBased.AspNet.Authority.Repositories; public interface IUserRepository { public Task GetAuthorityUserByIdAsync(string id, CancellationToken? cancellationToken = null); public Task GetAuthorityUserIdAsync(AuthorityUser user, CancellationToken? cancellationToken = null); public Task?, int>> GetAuthorityUsersAsync(string query, int maxResults = 20, int offset = 0, CancellationToken? cancellationToken = null); public Task GetAuthorityUserByEmailAsync(string email, CancellationToken? cancellationToken = null); public Task SetVersionAsync(AuthorityUser user, long version, CancellationToken? cancellationToken = null); public Task GetVersionAsync(AuthorityUser user, CancellationToken? cancellationToken = null); public Task SetSecurityVersionAsync(AuthorityUser user, long version, CancellationToken? cancellationToken = null); public Task GetSecurityVersionAsync(AuthorityUser user, CancellationToken? cancellationToken = null); public Task CreateUserAsync(AuthorityUser user, CancellationToken? cancellationToken = null); public Task UpdateUserAsync(AuthorityUser user, CancellationToken? cancellationToken = null); public Task DeleteUserAsync(AuthorityUser user, CancellationToken? cancellationToken = null); }