using Domain.Exceptions;
using Infrastructure.Repository.Auth;
namespace Service.Auth;
///
/// Represents the result of successfully confirming a user account.
///
/// The UTC date and time at which the account was confirmed.
/// The unique identifier of the confirmed user.
public record ConfirmationServiceReturn(DateTime ConfirmedAt, Guid UserId);
///
/// Defines operations for confirming user accounts and resending confirmation emails.
///
public interface IConfirmationService
{
///
/// Validates a confirmation token and confirms the corresponding user account.
///
/// The confirmation token issued to the user.
/// A describing the confirmed account.
Task ConfirmUserAsync(string confirmationToken);
///
/// Resends the account confirmation email for the specified user.
///
/// The unique identifier of the user requesting the resend.
/// A task that completes once the operation has finished.
Task ResendConfirmationEmailAsync(Guid userId);
}