<?php
declare(strict_types=1);
namespace App\Infrastructure\Doctrine\Entity;
use App\Domain\Common\Entity\IzOrderClient;
use App\Domain\Common\Entity\IzOrderClientContact;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Infrastructure\Doctrine\Repository\DoctrineIzOrderClientContactRepository")
*/
class DoctrineIzOrderClientContact implements IzOrderClientContact
{
/**
* @ORM\Id
* @ORM\Column(type="string", length=16, unique=true)
*/
private string $codeContact = '';
/**
* @var Collection<int, IzOrderClient>
*
* @ORM\OneToMany(targetEntity="App\Infrastructure\Doctrine\Entity\DoctrineIzOrderClient", mappedBy="contact")
* @ORM\JoinColumn(name="code_client", referencedColumnName="code_client")
*/
private iterable $clients;
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private ?string $nom = null;
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private ?string $email = null;
public function __construct()
{
$this->clients = new ArrayCollection();
}
public function getCodeContact(): string
{
return $this->codeContact;
}
public function setCodeContact(string $codeContact): void
{
$this->codeContact = $codeContact;
}
/**
* {@inheritDoc}
*/
public function getClients(): iterable
{
return $this->clients;
}
public function addClient(IzOrderClient $client): void
{
if (!$this->clients->contains($client)) {
$this->clients[] = $client;
$client->setContact($this);
}
}
public function removeClient(IzOrderClient $client): void
{
if ($this->clients->removeElement($client) && $client->getContact() === $this) {
$client->setContact(null);
}
}
public function getNom(): ?string
{
return $this->nom;
}
public function setNom(?string $nom): void
{
$this->nom = $nom;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(?string $email): void
{
$this->email = $email;
}
}