using Domain.Entities; namespace Features.Users.Repository; /// /// Repository for user profile records and their avatars. /// public interface IUserProfileRepository { /// /// Creates a new user profile for with the given /// and returns its UserProfileID. /// Task CreateProfileAsync( Guid userAccountId, string biography, CancellationToken cancellationToken ); /// /// Returns the UserProfileID for /// Task GetProfileIdAsync(Guid userAccountId, CancellationToken cancellationToken); /// /// Updates the biography of the user profile belonging to . /// /// /// Thrown when no user profile exists for . /// Task UpdateBiographyAsync( Guid userAccountId, string biography, CancellationToken cancellationToken ); /// /// Persists , replacing any existing avatar for the same user profile. /// Task SaveAvatarAsync(UserAvatar avatar, CancellationToken cancellationToken); }