<?php

namespace App\EntityListener;

use App\Entity\Domain;
use App\Message\IpChangedMessage;
use Doctrine\ORM\Mapping as ORM;
use GuzzleHttp\Client;
use Psr\Log\LoggerInterface;
use Symfony\Component\Messenger\MessageBusInterface;

final class DomainListener
{
    /**
     * @var MessageBusInterface
     */
    private $bus;
    /**
     * @var Client
     */
    private $httpClient;
    /**
     * @var LoggerInterface
     */
    private $logger;

    public function __construct(Client $httpClient, MessageBusInterface $bus, LoggerInterface $logger)
    {
        $this->bus = $bus;
        $this->httpClient = $httpClient;
        $this->logger = $logger;
    }

    /**
     * @ORM\PostUpdate()
     */
    public function changeIp(Domain $domain)
    {
        $this->bus->dispatch(new IpChangedMessage($domain));
    }
}
