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

namespace SocialService.API.Application.Validations;

/// <summary>
/// EN: Validator for UnfollowUserCommand.
/// VI: Validator cho UnfollowUserCommand.
/// </summary>
public class UnfollowUserCommandValidator : AbstractValidator<UnfollowUserCommand>
{
    public UnfollowUserCommandValidator()
    {
        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 unfollow yourself / Không thể bỏ theo dõi chính mình");
    }
}
