using FluentValidation;
using SocialService.API.Application.Commands;

namespace SocialService.API.Application.Validations;

/// <summary>
/// EN: Validator for FollowUserCommand.
/// VI: Validator cho FollowUserCommand.
/// </summary>
public class FollowUserCommandValidator : AbstractValidator<FollowUserCommand>
{
    public FollowUserCommandValidator()
    {
        RuleFor(x => x.FollowerId)
            .NotEmpty().WithMessage("Follower ID is required / ID người theo dõi là bắt buộc");

        RuleFor(x => x.FolloweeId)
            .NotEmpty().WithMessage("Followee ID is required / ID người được theo dõi là bắt buộc");

        RuleFor(x => x)
            .Must(x => x.FollowerId != x.FolloweeId)
            .WithMessage("Cannot follow yourself / Không thể theo dõi chính mình");
    }
}
