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(Domain.Entities.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);
}