<?php
namespace App\EventListener;
use App\Entity\OrderItem;
use App\Model\Category;
use FOS\ElasticaBundle\Event\PreTransformEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class IndexOrderItem implements EventSubscriberInterface
{
public function prepareObject(PreTransformEvent $event)
{
$orderItem = $event->getObject();
if (! $orderItem instanceof OrderItem) {
return;
}
$prod = $orderItem->getProduct();
if ($prod) {
$cat = $prod->getCategory();
if ($cat) {
$topCat = Category::topCategory($cat);
$orderItem->setTopCategoryId($topCat->getId());
}
}
}
public static function getSubscribedEvents(): array
{
return [
PreTransformEvent::class => 'prepareObject'
];
}
}