<?php

declare(strict_types=1);

namespace App\MessageHandler;

use App\Entity\EventLogContent;
use App\Message\EventLogMessage;
use App\Service\EventLogContentService;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;

final class EventLogMessageHandler implements MessageHandlerInterface
{
    /**
     * @var EventLogContentService
     */
    private $eventLogContentService;

    public function __construct(EventLogContentService $eventLogContentService)
    {
        $this->eventLogContentService = $eventLogContentService;
    }

    public function __invoke(EventLogMessage $message)
    {
        /** @var EventLogContent $eventLog */
        $eventLog = (new EventLogContent())
            ->setOldUser($message->getOldUser())
            ->setNewUser($message->getNewUser())
            ->setOldStatus($message->getOldStatus())
            ->setNewStatus($message->getNewStatus())
            ->setContent($message->getContent());

        $this->eventLogContentService->save($eventLog);
    }
}
