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

namespace MiningService.API.Application.Validations;

/// <summary>
/// EN: Validator for InviteToCircleCommand.
/// VI: Validator cho InviteToCircleCommand.
/// </summary>
public class InviteToCircleCommandValidator : AbstractValidator<InviteToCircleCommand>
{
    public InviteToCircleCommandValidator()
    {
        RuleFor(x => x.UserId)
            .NotEmpty().WithMessage("User ID is required / ID người dùng là bắt buộc");

        RuleFor(x => x.TargetMinerId)
            .NotEmpty().WithMessage("Target miner ID is required / ID thợ đào mục tiêu là bắt buộc");

        RuleFor(x => x)
            .Must(x => x.UserId != x.TargetMinerId)
            .WithMessage("Cannot invite yourself to circle / Không thể mời chính mình vào vòng tròn");
    }
}
