<?php
declare(strict_types=1);
namespace App\Infrastructure\Doctrine\Entity;
use App\Domain\Common\Entity\IzOrderProduct;
use App\Domain\Common\Entity\IzOrderProductRange;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Infrastructure\Doctrine\Repository\DoctrineIzOrderProductRangeRepository")
*/
class DoctrineIzOrderProductRange implements IzOrderProductRange
{
/**
* @ORM\Id
* @ORM\Column(type="string", length=16, unique=true)
*/
private string $codeGamme = '';
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private ?string $nomGamme = null;
/**
* @var Collection<int, IzOrderProduct>
*
* @ORM\OneToMany(targetEntity="App\Infrastructure\Doctrine\Entity\DoctrineIzOrderProduct", mappedBy="codeGamme")
*/
private iterable $products;
public function __construct()
{
$this->products = new ArrayCollection();
}
public function __toString(): string
{
return $this->getCodeGamme();
}
public function getCodeGamme(): string
{
return $this->codeGamme;
}
public function setCodeGamme(string $codeGamme): void
{
$this->codeGamme = $codeGamme;
}
public function getNomGamme(): ?string
{
return $this->nomGamme;
}
public function setNomGamme(?string $nomGamme): void
{
$this->nomGamme = $nomGamme;
}
/**
* {@inheritDoc}
*/
public function getProducts(): iterable
{
return $this->products;
}
public function addProduct(IzOrderProduct $product): void
{
if (!$this->products->contains($product)) {
$this->products[] = $product;
$product->setCodeGamme($this);
}
}
public function removeProduct(IzOrderProduct $product): void
{
if ($this->products->removeElement($product) && $product->getCodeGamme() === $this) {
$product->setCodeGamme(null);
}
}
}