public AcceptInviteValidator(IInviteRepository inviteRepository,
                                     IMemberRepository memberRepository,
                                     IGuildRepository guildRepository)
        {
            RuleFor(x => x.Id)
            .NotEmpty()
            .MustAsync(async(id, _) => await inviteRepository.ExistsWithIdAsync(id))
            .WithMessage(x => CommonValidationMessages.ForRecordNotFound(nameof(Invite), x.Invite.Id));

            RuleFor(x => x.Invite)
            .NotEmpty().NotEqual(new NullInvite())
            .WithMessage("Invite was null or empty.");

            RuleFor(x => x.Invite.Status).IsInEnum().Equal(InviteStatuses.Pending);

            RuleFor(x => x.Invite.MemberId)
            .NotEmpty()
            .MustAsync(async(memberId, _) => await memberRepository.ExistsWithIdAsync(memberId))
            .WithMessage(x => CommonValidationMessages.ForRecordNotFound(nameof(Member), x.Invite.MemberId));

            RuleFor(x => x.Invite.GuildId)
            .NotEmpty()
            .MustAsync(async(guildId, _) => await guildRepository.ExistsWithIdAsync(guildId))
            .WithMessage(x => CommonValidationMessages.ForRecordNotFound(nameof(Guild), x.Invite.GuildId));
        }
        public CancelInviteValidator(IInviteRepository inviteRepository)
        {
            RuleFor(x => x.Id)
            .NotEmpty()
            .MustAsync(async(id, _) => await inviteRepository.ExistsWithIdAsync(id))
            .WithMessage(x => CommonValidationMessages.ForConflictWithKey(nameof(Invite), x.Id));

            RuleFor(x => x.Invite)
            .NotEmpty().NotEqual(new NullInvite())
            .WithMessage("Invite was null or empty.");

            RuleFor(x => x.Invite.Status).IsInEnum().Equal(InviteStatuses.Pending);

            RuleFor(x => x.Invite.MemberId).NotEmpty();

            RuleFor(x => x.Invite.GuildId).NotEmpty();
        }