using CMSMicroservice.Domain.Common;
using FluentValidation;

namespace CMSMicroservice.Application.WalletCQ.Commands.ChargeDiscountWallet;

public class ChargeDiscountWalletCommandValidator : AbstractValidator<ChargeDiscountWalletCommand>
{
    public ChargeDiscountWalletCommandValidator()
    {
        RuleFor(x => x.UserId)
            .GreaterThan(0)
            .WithMessage("شناسه کاربر باید بزرگتر از صفر باشد");

        // حصار ایمنی — سقف تخفیفی فعلاً سراسری است
        RuleFor(x => x.Amount)
            .GreaterThanOrEqualTo(SystemConstants.DiscountWalletMinCharge)
            .WithMessage("حداقل مبلغ شارژ ۱,۰۰۰ تومان است")
            .LessThanOrEqualTo(SystemConstants.WalletMaxSafeAmount)
            .WithMessage("مبلغ وارد شده بیش از حد مجاز است");
    }
}
