using Domain.Entities; using Features.Auth.Dtos; namespace Features.Auth.Repository; /// /// Repository for authentication-related database operations including user registration and credential management. /// public interface IAuthRepository { Task RegisterUserAsync( UserRegistrationDto userRegistrationDto ); Task GetUserByEmailAsync(string email); Task GetUserByUsernameAsync(string username); Task GetActiveCredentialByUserAccountIdAsync(Guid userAccountId); /// Rotates a user's credential by invalidating all existing credentials and creating a new one. Task RotateCredentialAsync(Guid userAccountId, string newPasswordHash); /// Marks a user account as confirmed. Idempotent if the account is already verified. Task ConfirmUserAccountAsync(Guid userAccountId); Task GetUserByIdAsync(Guid userAccountId); Task IsUserVerifiedAsync(Guid userAccountId); }