<?php
declare(strict_types=1);
namespace BitBag\OpenMarketplace\Component\Elasticsearch\PropertyBuilder;
use BitBag\OpenMarketplace\Component\Product\Entity\ProductInterface;
use BitBag\SyliusElasticsearchPlugin\PropertyBuilder\AbstractBuilder;
use Elastica\Document;
use FOS\ElasticaBundle\Event\PostTransformEvent;
final class FeaturedPropertyBuilder extends AbstractBuilder
{
public function __construct(
private string $featuredProperty
) {
}
public function consumeEvent(PostTransformEvent $event): void
{
$this->buildProperty(
$event,
ProductInterface::class,
function (ProductInterface $product, Document $document): void {
$document->set(
$this->featuredProperty,
(int) $product->isFeatured(),
);
}
);
}
}