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

namespace SocialService.API.Application.Validations;

/// <summary>
/// EN: Validator for SendFriendRequestCommand.
/// VI: Validator cho SendFriendRequestCommand.
/// </summary>
public class SendFriendRequestCommandValidator : AbstractValidator<SendFriendRequestCommand>
{
    public SendFriendRequestCommandValidator()
    {
        RuleFor(x => x.RequesterId)
            .NotEmpty().WithMessage("Requester ID is required / ID người gửi là bắt buộc");

        RuleFor(x => x.AddresseeId)
            .NotEmpty().WithMessage("Addressee ID is required / ID người nhận là bắt buộc");

        RuleFor(x => x)
            .Must(x => x.RequesterId != x.AddresseeId)
            .WithMessage("Cannot send friend request to yourself / Không thể gửi yêu cầu kết bạn cho chính mình");
    }
}
