using FluentValidation;
using MiningService.API.Application.Commands;

namespace MiningService.API.Application.Validations;

/// <summary>
/// EN: Validator for UpdateReferralConfigCommand.
/// VI: Validator cho UpdateReferralConfigCommand.
/// </summary>
public class UpdateReferralConfigCommandValidator : AbstractValidator<UpdateReferralConfigCommand>
{
    public UpdateReferralConfigCommandValidator()
    {
        RuleFor(x => x.BonusPerReferral)
            .GreaterThan(0).WithMessage("Bonus per referral must be positive / Thưởng mỗi giới thiệu phải dương")
            .When(x => x.BonusPerReferral.HasValue);

        RuleFor(x => x.MaxBonusCap)
            .GreaterThan(0).WithMessage("Max bonus cap must be positive / Giới hạn thưởng tối đa phải dương")
            .When(x => x.MaxBonusCap.HasValue);
    }
}
