src/Entity/SubscriberList.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\SubscriberListRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Gedmo\Mapping\Annotation as Gedmo;
  8. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  9. /**
  10.  * @ORM\Entity(repositoryClass=SubscriberListRepository::class)
  11.  * @UniqueEntity("name")
  12.  */
  13. class SubscriberList
  14. {
  15.     /**
  16.      * @ORM\Id()
  17.      * @ORM\GeneratedValue()
  18.      * @ORM\Column(type="integer")
  19.      */
  20.     private $id;
  21.     /**
  22.      * @ORM\Column(type="string", length=255)
  23.      */
  24.     private $name;
  25.             
  26.     /**
  27.      * @var \DateTime $createdAt
  28.      *
  29.      * @Gedmo\Timestampable(on="create")
  30.      * @ORM\Column(type="datetime", nullable=true)
  31.      */
  32.     private $createdAt;
  33.     /**
  34.      * @var \DateTime $updatedAt
  35.      *
  36.      * @Gedmo\Timestampable(on="update")
  37.      * @ORM\Column(type="datetime")
  38.      */
  39.     private $updatedAt;
  40.     /* relations */
  41.     /**
  42.      * @ORM\ManyToMany(targetEntity=Subscriber::class, mappedBy="subscriberLists")
  43.      */
  44.     private $subscribers;
  45.     /**
  46.      * @ORM\ManyToMany(targetEntity=Newsletter::class, mappedBy="subscriberLists")
  47.      */
  48.     private $newsletters;
  49.     public function __construct()
  50.     {
  51.         $this->createdAt = new \DateTime('now'); // default 
  52.         $this->updatedAt = new \DateTime('now'); // default
  53.         $this->subscribers = new ArrayCollection();
  54.         $this->newsletters = new ArrayCollection();
  55.     }
  56.     
  57.     public function __toString()
  58.     {
  59.         return $this->name;    
  60.     }
  61.     public function getId(): ?int
  62.     {
  63.         return $this->id;
  64.     }
  65.     public function getName(): ?string
  66.     {
  67.         return $this->name;
  68.     }
  69.     public function setName(string $name): self
  70.     {
  71.         $this->name $name;
  72.         return $this;
  73.     }
  74.     /**
  75.      * @return Collection|Subscriber[]
  76.      */
  77.     public function getSubscribers(): Collection
  78.     {
  79.         return $this->subscribers;
  80.     }
  81.     public function addSubscriber(Subscriber $subscriber): self
  82.     {
  83.         if (!$this->subscribers->contains($subscriber)) {
  84.             $this->subscribers[] = $subscriber;
  85.             $subscriber->addSubscriberList($this);
  86.         }
  87.         return $this;
  88.     }
  89.     public function removeSubscriber(Subscriber $subscriber): self
  90.     {
  91.         if ($this->subscribers->contains($subscriber)) {
  92.             $this->subscribers->removeElement($subscriber);
  93.             $subscriber->removeSubscriberList($this);
  94.         }
  95.         return $this;
  96.     }
  97.     /**
  98.      * @return Collection|Newsletter[]
  99.      */
  100.     public function getNewsletters(): Collection
  101.     {
  102.         return $this->newsletters;
  103.     }
  104.     public function addNewsletter(Newsletter $newsletter): self
  105.     {
  106.         if (!$this->newsletters->contains($newsletter)) {
  107.             $this->newsletters[] = $newsletter;
  108.             $newsletter->addSubscriberList($this);
  109.         }
  110.         return $this;
  111.     }
  112.     public function removeNewsletter(Newsletter $newsletter): self
  113.     {
  114.         if ($this->newsletters->contains($newsletter)) {
  115.             $this->newsletters->removeElement($newsletter);
  116.             $newsletter->removeSubscriberList($this);
  117.         }
  118.         return $this;
  119.     }
  120.     public function getCreatedAt(): ?\DateTimeInterface
  121.     {
  122.         return $this->createdAt;
  123.     }
  124.     public function setCreatedAt(?\DateTimeInterface $createdAt): self
  125.     {
  126.         $this->createdAt $createdAt;
  127.         return $this;
  128.     }
  129.     public function getUpdatedAt(): ?\DateTimeInterface
  130.     {
  131.         return $this->updatedAt;
  132.     }
  133.     public function setUpdatedAt(\DateTimeInterface $updatedAt): self
  134.     {
  135.         $this->updatedAt $updatedAt;
  136.         return $this;
  137.     }
  138. }