<?php
namespace App\CasinoBundle\Entity;
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;
/**
* CasinoCategory
*
* @ORM\Table(
* name="casino_category",
* indexes={
* @ORM\Index(name="casino_category_published_index", columns={"published"})
* },
* uniqueConstraints={
* @ORM\UniqueConstraint(name="casino_category_slug_uindex", columns={"slug"}),
* @ORM\UniqueConstraint(name="casino_category_name_uindex", columns={"name"})
* }
* )
* @ORM\Entity(
* repositoryClass="App\CasinoBundle\Repository\CasinoCategoryRepository"
* )
* @ORM\Cache(
* usage="NONSTRICT_READ_WRITE",
* region="one_day"
* )
*/
class CasinoCategory
{
use IdTrait;
use NameTrait;
use SlugTrait;
use AliasTrait;
use PublishedTrait;
/**
* @ORM\ManyToMany(
* targetEntity="App\CasinoBundle\Entity\Casino",
* mappedBy="casinoCategories",
* cascade={"persist"}
* )
*/
private $casinos;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private string $acronym;
/**
* @ORM\OneToMany(targetEntity="App\CasinoBundle\Entity\Alias", mappedBy="casinoCategory", cascade={"persist"}, orphanRemoval=true)
*/
private Collection $aliases;
/**
* CasinoCategory constructor.
*/
public function __construct()
{
$this->casinos = new ArrayCollection();
$this->aliases = new ArrayCollection();
}
/**
* @return string
*/
public function __toString()
{
return $this->name;
}
/**
* @return Collection|Bonus[]
*/
public function getCasinos(): Collection
{
return $this->casinos;
}
/**
* @param Casino $casino
* @return $this
*/
public function addCasino(Casino $casino): self
{
if (!$this->casinos->contains($casino)) {
$this->casinos[] = $casino;
$casino->addCasinoCategory($this);
}
return $this;
}
/**
* @param Casino $casino
* @return $this
*/
public function removeCasino(Casino $casino): self
{
if ($this->casinos->contains($casino)) {
$this->casinos->removeElement($casino);
$casino->removeCasinoCategory($this);
}
return $this;
}
/**
* @return string|null
*/
public function getAcronym(): ?string
{
return $this->acronym;
}
/**
* @param string $acronym
* @return $this
*/
public function setAcronym(string $acronym): self
{
$this->acronym = $acronym;
return $this;
}
}