using Domain.Entities; namespace Features.UserManagement.Repository; /// /// Repository for CRUD operations on user account records. /// public interface IUserAccountRepository { /// /// Retrieves a user account by its unique identifier, or null if not found. /// Task GetByIdAsync(Guid id); /// /// Retrieves all user accounts, optionally paginated. /// /// 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); /// /// Retrieves a user account by username, or null if not found. /// Task GetByUsernameAsync(string username); /// /// Retrieves a user account by email address, or null if not found. /// Task GetByEmailAsync(string email); }