src/CasinoBundle/Entity/BonusType.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\CasinoBundle\Entity;
  3. use App\CmsBundle\Entity\PublishedTrait;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use App\CmsBundle\Entity\SlugTrait;
  8. use App\CmsBundle\Entity\IdTrait;
  9. /**
  10.  * BonusType
  11.  *
  12.  * @ORM\Table(
  13.  *     name="bonus_type"
  14.  * )
  15.  * @ORM\Entity(
  16.  *     repositoryClass="App\CasinoBundle\Repository\BonusTypeRepository"
  17.  * )
  18.  * @ORM\Cache(
  19.  *     usage="NONSTRICT_READ_WRITE",
  20.  *     region="one_day"
  21.  * )
  22.  */
  23. class BonusType
  24. {
  25.     use IdTrait;
  26.     use NameTrait;
  27.     use SlugTrait;
  28.     use AliasTrait;
  29.     use PublishedTrait;
  30.     /**
  31.      * @ORM\ManyToMany(targetEntity="App\CasinoBundle\Entity\Casino", mappedBy="bonusTypes", cascade={"persist"})
  32.      */
  33.     private Collection $casinos;
  34.     /**
  35.      * @ORM\ManyToMany(targetEntity="App\CasinoBundle\Entity\NewBonus", mappedBy="bonusTypes", cascade={"persist"})
  36.      */
  37.     private Collection $newBonuses;
  38.     /**
  39.      * @ORM\OneToMany(targetEntity="App\CasinoBundle\Entity\BonusCategory", mappedBy="bonusType", orphanRemoval=true, cascade={"persist"})
  40.      */
  41.     private Collection $bonusCategories;
  42.     /**
  43.      * @ORM\OneToMany(targetEntity="App\CasinoBundle\Entity\Alias", mappedBy="bonusType", cascade={"persist"}, orphanRemoval=true)
  44.      */
  45.     private Collection $aliases;
  46.     /**
  47.      * BonusType constructor.
  48.      */
  49.     public function __construct()
  50.     {
  51.         $this->casinos =    new ArrayCollection();
  52.         $this->newBonuses = new ArrayCollection();
  53.         $this->bonusCategories = new ArrayCollection();
  54.         $this->aliases =    new ArrayCollection();
  55.     }
  56.     /**
  57.      * @return string
  58.      */
  59.     public function __toString()
  60.     {
  61.         return $this->name;
  62.     }
  63.     /**
  64.      * @return Collection|Casino[]
  65.      */
  66.     public function getCasinos(): Collection
  67.     {
  68.         return $this->casinos;
  69.     }
  70.     /**
  71.      * @return int
  72.      */
  73.     public function getCasinosCount(): int
  74.     {
  75.         return count($this->casinos);
  76.     }
  77.     /**
  78.      * @param Casino $casino
  79.      * @return $this
  80.      */
  81.     public function addCasino(Casino $casino): self
  82.     {
  83.         if (!$this->casinos->contains($casino)) {
  84.             $this->casinos[] = $casino;
  85.             $casino->addBonusType($this);
  86.         }
  87.         return $this;
  88.     }
  89.     /**
  90.      * @param Casino $casino
  91.      * @return $this
  92.      */
  93.     public function removeCasino(Casino $casino): self
  94.     {
  95.         if ($this->casinos->contains($casino)) {
  96.             $this->casinos->removeElement($casino);
  97.             $casino->removeBonusType($this);
  98.         }
  99.         return $this;
  100.     }
  101.     /**
  102.      * @return Collection|NewBonus[]
  103.      */
  104.     public function getNewBonuses(): Collection
  105.     {
  106.         return $this->newBonuses;
  107.     }
  108.     /**
  109.      * @param NewBonus $newBonus
  110.      * @return $this
  111.      */
  112.     public function addNewBonus(NewBonus $newBonus): self
  113.     {
  114.         if (!$this->newBonuses->contains($newBonus)) {
  115.             $this->newBonuses[] = $newBonus;
  116.             $newBonus->addBonusType($this);
  117.         }
  118.         return $this;
  119.     }
  120.     /**
  121.      * @param NewBonus $newBonus
  122.      * @return $this
  123.      */
  124.     public function removeNewBonus(NewBonus $newBonus): self
  125.     {
  126.         if ($this->newBonuses->contains($newBonus)) {
  127.             $this->newBonuses->removeElement($newBonus);
  128.             $newBonus->removeBonusType($this);
  129.         }
  130.         return $this;
  131.     }
  132.     /**
  133.      * @return Collection|BonusCategory[]
  134.      */
  135.     public function getBonusCategories(): Collection
  136.     {
  137.         return $this->bonusCategories;
  138.     }
  139. }