<?php
namespace App\CasinoBundle\Entity;
use App\CmsBundle\Entity\IdTrait;
use Doctrine\ORM\Mapping as ORM;
/**
* Alias
*
* @ORM\Table(
* name="alias",
* indexes={
* @ORM\Index(name="alias_name_index", columns={"name"})
* },
* uniqueConstraints={
* @ORM\UniqueConstraint(name="alias_casino_uindex", columns={"name","casino_id"}),
* @ORM\UniqueConstraint(name="alias_software_uindex", columns={"name","software_id"}),
* @ORM\UniqueConstraint(name="alias_currency_uindex", columns={"name","currency_id"}),
* @ORM\UniqueConstraint(name="alias_payment_method_uindex", columns={"name","payment_method_id"}),
* @ORM\UniqueConstraint(name="alias_country_uindex", columns={"name","country_id"}),
* @ORM\UniqueConstraint(name="alias_language_uindex", columns={"name","language_id"}),
* @ORM\UniqueConstraint(name="alias_slot_uindex", columns={"name","slot_id"}),
* @ORM\UniqueConstraint(name="alias_new_bonus_uindex", columns={"name","new_bonus_id"}),
* @ORM\UniqueConstraint(name="alias_bonus_type_uindex", columns={"name","bonus_type_id"}),
* @ORM\UniqueConstraint(name="alias_bonus_category_uindex", columns={"name","bonus_category_id"}),
* @ORM\UniqueConstraint(name="alias_bonus_amount_uindex", columns={"name","bonus_amount_id"}),
* @ORM\UniqueConstraint(name="alias_city_uindex", columns={"name","city_id"}),
* @ORM\UniqueConstraint(name="alias_state_uindex", columns={"name","state_id"}),
* @ORM\UniqueConstraint(name="alias_casino_category_uindex", columns={"name","casino_category_id"}),
* @ORM\UniqueConstraint(name="alias_min_deposit_uindex", columns={"name","min_deposit_id"}),
* @ORM\UniqueConstraint(name="alias_game_type_uindex", columns={"name","game_type_id"})
* }
* )
* @ORM\Entity(repositoryClass="App\CasinoBundle\Repository\AliasRepository")
*/
class Alias
{
use IdTrait;
use NameTrait;
private const AVAILABLE_ENTITIES = ['Casino','Software','Currency','PaymentMethod','Country','City','State','Language','Slot','NewBonus','Licence','BonusAmount','BonusCategory','BonusType','CasinoCategory','MinDeposit','GameType'];
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\Casino", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?Casino $casino;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\Software", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?Software $software;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\Currency", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?Currency $currency;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\PaymentMethod", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?PaymentMethod $paymentMethod;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\Country", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?Country $country;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\City", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?City $city;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\State", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?State $state;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\Language", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?Language $language;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\Slot", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?Slot $slot;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\NewBonus", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?NewBonus $newBonus;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\Licence", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?Licence $licence;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\BonusAmount", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?BonusAmount $bonusAmount;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\BonusCategory", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?BonusCategory $bonusCategory;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\BonusType", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?BonusType $bonusType;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\CasinoCategory", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?CasinoCategory $casinoCategory;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\MinDeposit", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?MinDeposit $minDeposit;
/**
* @ORM\ManyToOne(targetEntity="App\CasinoBundle\Entity\GameType", inversedBy="aliases", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
public ?GameType $gameType;
public function __toString()
{
return $this->name;
}
public function getType(): ?string
{
foreach (self::AVAILABLE_ENTITIES as $entity) {
$getter = 'get'.$entity;
if ($this->$getter()) return $entity . ' - ('.$this->$getter()->getId().') ' . $this->$getter()->getName();
}
return null;
}
public function setCasino(?Casino $casino): self
{
$this->casino = $casino;
return $this;
}
public function getCasino(): ?Casino
{
return $this->casino;
}
public function setSoftware(?Software $software): self
{
$this->software = $software;
return $this;
}
public function getSoftware(): ?Software
{
return $this->software;
}
public function setCurrency(?Currency $currency): self
{
$this->currency = $currency;
return $this;
}
public function getCurrency(): ?Currency
{
return $this->currency;
}
public function setPaymentMethod(?PaymentMethod $paymentMethod): self
{
$this->paymentMethod = $paymentMethod;
return $this;
}
public function getPaymentMethod(): ?PaymentMethod
{
return $this->paymentMethod;
}
public function setCountry(?Country $country): self
{
$this->country = $country;
return $this;
}
public function getCountry(): ?Country
{
return $this->country;
}
public function setLanguage(?Language $language): self
{
$this->language = $language;
return $this;
}
public function getLanguage(): ?Language
{
return $this->language;
}
/**
* @param NewBonus|null $newBonus
* @return $this
*/
public function setNewBonus(?NewBonus $newBonus): self
{
$this->newBonus = $newBonus;
return $this;
}
/**
* @return NewBonus|null
*/
public function getNewBonus(): ?NewBonus
{
return $this->newBonus;
}
/**
* @param Slot|null $slot
* @return $this
*/
public function setSlot(?Slot $slot): self
{
$this->slot = $slot;
return $this;
}
/**
* @return Slot|null
*/
public function getSlot(): ?Slot
{
return $this->slot;
}
/**
* @param Licence|null $licence
* @return $this
*/
public function setLicence(?Licence $licence): self
{
$this->licence = $licence;
return $this;
}
/**
* @return Licence|null
*/
public function getLicence(): ?Licence
{
return $this->licence;
}
/**
* @param BonusAmount|null $bonusAmount
* @return $this
*/
public function setBonusAmount(?BonusAmount $bonusAmount): self
{
$this->bonusAmount = $bonusAmount;
return $this;
}
/**
* @return BonusAmount|null
*/
public function getBonusAmount(): ?BonusAmount
{
return $this->bonusAmount;
}
/**
* @param BonusCategory|null $bonusCategory
* @return $this
*/
public function setBonusCategory(?BonusCategory $bonusCategory): self
{
$this->bonusCategory = $bonusCategory;
return $this;
}
/**
* @return BonusCategory|null
*/
public function getBonusCategory(): ?BonusCategory
{
return $this->bonusCategory;
}
/**
* @param BonusType|null $bonusType
* @return $this
*/
public function setBonusType(?BonusType $bonusType): self
{
$this->bonusType = $bonusType;
return $this;
}
/**
* @return BonusType|null
*/
public function getBonusType(): ?BonusType
{
return $this->bonusType;
}
/**
* @param City|null $city
* @return $this
*/
public function setCity(?City $city): self
{
$this->city = $city;
return $this;
}
/**
* @return City|null
*/
public function getCity(): ?City
{
return $this->city;
}
/**
* @param State|null $state
* @return $this
*/
public function setState(?State $state): self
{
$this->state = $state;
return $this;
}
/**
* @return State|null
*/
public function getState(): ?State
{
return $this->state;
}
/**
* @param CasinoCategory|null $casinoCategory
* @return $this
*/
public function setCasinoCategory(?CasinoCategory $casinoCategory): self
{
$this->casinoCategory = $casinoCategory;
return $this;
}
/**
* @return CasinoCategory|null
*/
public function getCasinoCategory(): ?CasinoCategory
{
return $this->casinoCategory;
}
/**
* @param MinDeposit|null $minDeposit
* @return $this
*/
public function setMinDeposit(?MinDeposit $minDeposit): self
{
$this->minDeposit = $minDeposit;
return $this;
}
/**
* @return MinDeposit|null
*/
public function getMinDeposit(): ?MinDeposit
{
return $this->minDeposit;
}
/**
* @return MinDeposit|null
*/
public function setGameType(?GameType $gameType): self
{
$this->gameType = $gameType;
return $this;
}
public function getGameType(): ?GameType
{
return $this->gameType;
}
}