using MediatR;

namespace IamService.API.Application.Commands.Verifications;

/// <summary>
/// EN: Command to request phone verification.
/// VI: Command để yêu cầu xác thực số điện thoại.
/// </summary>
public record RequestPhoneVerificationCommand(
    Guid UserId,
    string PhoneNumber) : IRequest<RequestVerificationCommandResult>;

/// <summary>
/// EN: Command to request email verification.
/// VI: Command để yêu cầu xác thực email.
/// </summary>
public record RequestEmailVerificationCommand(
    Guid UserId,
    string Email) : IRequest<RequestVerificationCommandResult>;

/// <summary>
/// EN: Result of verification request command.
/// VI: Kết quả của command yêu cầu xác thực.
/// </summary>
public record RequestVerificationCommandResult(
    Guid VerificationId,
    string VerificationType,
    DateTime ExpiresAt,
    string Message);
