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);
}