<?php
namespace App\CasinoBundle\Entity;
use App\CmsBundle\Entity\AcronymTrait;
use App\CmsBundle\Entity\PublishedTrait;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use App\CmsBundle\Entity\SlugTrait;
use App\CmsBundle\Entity\IdTrait;
/**
* BonusCategory
*
* @ORM\Table(
* name="bonus_category"
* )
* @ORM\Entity(
* repositoryClass="App\CasinoBundle\Repository\BonusCategoryRepository"
* )
* @ORM\Cache(
* usage="NONSTRICT_READ_WRITE",
* region="one_day"
* )
*/
class BonusCategory
{
use IdTrait;
use NameTrait;
use SlugTrait;
use AliasTrait;
use PublishedTrait;
use AcronymTrait;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\BonusType", inversedBy="bonusCategories", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
private $bonusType;
/**
* @ORM\ManyToMany(
* targetEntity="App\CasinoBundle\Entity\NewBonus",
* mappedBy="bonusCategories",
* cascade={"persist"}
* )
*/
private $newBonuses;
/**
* @ORM\OneToMany(targetEntity="App\CasinoBundle\Entity\Alias", mappedBy="bonusCategory", cascade={"persist"}, orphanRemoval=true)
*/
private Collection $aliases;
/**
* BonusCategory constructor.
*/
public function __construct()
{
$this->newBonuses = new ArrayCollection();
$this->aliases = new ArrayCollection();
}
/**
* @return string
*/
public function __toString()
{
return $this->name;
}
/**
* @return Collection|Bonus[]
*/
public function getNewBonuses(): Collection
{
return $this->newBonuses;
}
/**
* @param NewBonus $newBonus
* @return $this
*/
public function addNewBonus(NewBonus $newBonus): self
{
if (!$this->newBonuses->contains($newBonus)) {
$this->newBonuses[] = $newBonus;
$newBonus->addBonusCategory($this);
}
return $this;
}
/**
* @param NewBonus $newBonus
* @return $this
*/
public function removeNewBonus(NewBonus $newBonus): self
{
if ($this->newBonuses->contains($newBonus)) {
$this->newBonuses->removeElement($newBonus);
$newBonus->removeBonusCategory($this);
}
return $this;
}
/**
* @return BonusType|null
*/
public function getBonusType(): ?BonusType
{
return $this->bonusType;
}
/**
* @param BonusType|null $bonusType
* @return $this
*/
public function setBonusType(?BonusType $bonusType): self
{
$this->bonusType = $bonusType;
return $this;
}
}