using CMSMicroservice.Domain.Enums;

namespace CMSMicroservice.Application.TransactionsCQ.Commands.VerifyTransaction;

/// <summary>
/// Command برای تایید پرداخت (Callback از درگاه)
/// </summary>
public record VerifyTransactionCommand : IRequest<VerifyTransactionResponseDto>
{
    /// <summary>
    /// شناسه تراکنش در سیستم
    /// </summary>
    public long TransactionId { get; init; }
    
    /// <summary>
    /// کد رهگیری از درگاه پرداخت (RefId)
    /// </summary>
    public string RefId { get; init; }
    
    /// <summary>
    /// وضعیت پرداخت از درگاه
    /// </summary>
    public PaymentStatus Status { get; init; }
    
    /// <summary>
    /// تاریخ پرداخت
    /// </summary>
    public DateTime PaymentDate { get; init; }
}
