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. /// /// The unique identifier of the user account. /// The matching , or null if not found. Task GetByIdAsync(Guid id); /// /// Retrieves all user accounts, optionally paginated. /// /// The maximum number of records to return, or null for no limit. /// The number of records to skip, or null for no offset. /// The collection of matching records. Task> GetAllAsync( int? limit, int? offset ); /// /// Updates an existing user account's details. /// /// The user account containing updated values. Must have a valid UserAccountId. Task UpdateAsync(UserAccount userAccount); /// /// Deletes a user account by its unique identifier. /// /// The unique identifier of the user account to delete. Task DeleteAsync(Guid id); /// /// Retrieves a user account by username. /// /// The username to search for. /// The matching , or null if not found. Task GetByUsernameAsync(string username); /// /// Retrieves a user account by email address. /// /// The email address to search for. /// The matching , or null if not found. Task GetByEmailAsync(string email); }