namespace CMSMicroservice.Application.TransactionsCQ.Commands.RefundTransaction;

public class RefundTransactionCommandValidator : AbstractValidator<RefundTransactionCommand>
{
    public RefundTransactionCommandValidator()
    {
        RuleFor(v => v.TransactionId)
            .GreaterThan(0)
            .WithMessage("شناسه تراکنش باید بزرگتر از صفر باشد");
        
        RuleFor(v => v.RefundReason)
            .NotEmpty()
            .WithMessage("دلیل استرداد الزامی است")
            .MaximumLength(500)
            .WithMessage("دلیل استرداد نباید بیش از 500 کاراکتر باشد");
        
        RuleFor(v => v.RefundAmount)
            .GreaterThan(0)
            .When(v => v.RefundAmount.HasValue)
            .WithMessage("مبلغ استرداد باید بزرگتر از صفر باشد");
    }
}
