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

namespace MiningService.API.Application.Validations;

/// <summary>
/// EN: Validator for AdjustMinerPointsCommand.
/// VI: Validator cho AdjustMinerPointsCommand.
/// </summary>
public class AdjustMinerPointsCommandValidator : AbstractValidator<AdjustMinerPointsCommand>
{
    public AdjustMinerPointsCommandValidator()
    {
        RuleFor(x => x.MinerId)
            .NotEmpty().WithMessage("Miner ID is required / ID thợ đào là bắt buộc");

        RuleFor(x => x.Amount)
            .NotEqual(0).WithMessage("Amount must not be zero / Số lượng không được bằng 0");

        RuleFor(x => x.Reason)
            .NotEmpty().WithMessage("Reason is required / Lý do là bắt buộc")
            .MaximumLength(500).WithMessage("Reason max 500 chars / Lý do tối đa 500 ký tự");
    }
}
