<?php
declare(strict_types=1);
namespace App\Entity\Product;
use Doctrine\ORM\Mapping as ORM;
use Sylius\Component\Core\Model\Product as BaseProduct;
use Sylius\Component\Product\Model\ProductTranslationInterface;
/**
* @ORM\Entity
* @ORM\Table(name="sylius_product")
*/
class Product extends BaseProduct
{
protected function createTranslation(): ProductTranslationInterface
{
return new ProductTranslation();
}
public function getImageByExternalId(int $id): ?ProductImage
{
return $this->images->filter(function (ProductImage $image) use ($id): bool {
return $id === $image->getExternalId();
})->first()?:null;
}
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $model;
public function getModel(): ?string
{
return $this->model;
}
public function setModel(?string $model): self
{
$this->model = $model;
return $this;
}
public function getOnHand(): int
{
$onHand = 0;
foreach ($this->getEnabledVariants() as $enabledVariant) {
$onHand += $enabledVariant->getOnHand();
}
return $onHand;
}
}