<?php namespace Lc\SovBundle\Model\Newsletter; use Doctrine\ORM\Mapping as ORM; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Lc\SovBundle\Doctrine\Pattern\AbstractFullEntity; use Lc\SovBundle\Model\User\UserInterface; /** * @ORM\MappedSuperclass() */ abstract class NewsletterModel extends AbstractFullEntity implements NewsletterInterface { /** * @ORM\ManyToMany(targetEntity="Lc\SovBundle\Model\User\UserInterface", mappedBy="newsletters") */ protected $users; /** * @ORM\Column(type="boolean", nullable=true) */ protected $isMain; public function __toString() { return $this->getTitle(); } public function __construct() { $this->users = new ArrayCollection(); } /** * @return Collection|UserInterface[] */ public function getUsers(): Collection { return $this->users; } public function addUser(UserInterface $user): self { if (!$this->users->contains($user)) { $this->users[] = $user; $user->addNewsletter($this); } return $this; } public function removeUser(UserInterface $user): self { if ($this->users->contains($user)) { $this->users->removeElement($user); $user->removeNewsletter($this); } return $this; } public function getIsMain(): ?bool { return $this->isMain; } public function setIsMain(?bool $isMain): self { $this->isMain = $isMain; return $this; } }