using Domain.Entities; namespace Features.UserManagement.Repository; /// /// Repository for CRUD operations on user account records. /// public interface IUserAccountRepository { /// Returns null if no user account exists with the given ID. Task GetByIdAsync(Guid id); /// null for no limit. /// null for no offset. Task> GetAllAsync(int? limit, int? offset); /// Must have a valid UserAccountId. Task UpdateAsync(UserAccount userAccount); Task DeleteAsync(Guid id); /// Returns null if no user account exists with the given username. Task GetByUsernameAsync(string username); /// Returns null if no user account exists with the given email address. Task GetByEmailAsync(string email); }