<?php
namespace App\CasinoBundle\Entity;
use App\CmsBundle\Entity\PublishedTrait;
use App\CmsBundle\Entity\SlugTrait;
use App\CmsBundle\Entity\TimeStampedTrait;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* State
*
* @ORM\Table(
* name="state",
* uniqueConstraints={
* @ORM\UniqueConstraint(name="state_slug_uindex", columns={"slug"}),
* @ORM\UniqueConstraint(name="state_alpha2_uindex", columns={"alpha2"})
* },
* indexes={
* @ORM\Index(name="state_published_index", columns={"published"})
* }
* )
* @ORM\Entity(repositoryClass="App\CasinoBundle\Repository\StateRepository")
* @ORM\HasLifecycleCallbacks()
*/
class State
{
use SlugTrait;
use AliasTrait;
use PublishedTrait;
use TimeStampedTrait;
/**
* @var int
*
* @ORM\Column(name="id", type="bigint", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string|null
*
* @ORM\Column(name="name", type="string", length=35, nullable=true)
*/
private $name;
/**
* @var Country|null
* @ORM\ManyToOne(targetEntity="Country", inversedBy="states")
* @ORM\JoinColumn(name="country_id", referencedColumnName="id")
*/
private $country;
/**
* @ORM\OneToMany(targetEntity="City", mappedBy="state")
*/
private $cities;
/**
* @var string|null
*
* @ORM\Column(name="alpha2", type="string", length=2, nullable=true)
*/
private ?string $alpha2;
/**
* @ORM\OneToMany(targetEntity="App\CasinoBundle\Entity\Alias", mappedBy="state", cascade={"persist"}, orphanRemoval=true)
*/
private Collection $aliases;
public function __construct()
{
$this->cities = new ArrayCollection();
$this->aliases = new ArrayCollection();
}
public function __toString()
{
return $this->name;
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*/
public function setId(int $id): void
{
$this->id = $id;
}
/**
* @return null|string
*/
public function getName(): ?string
{
return $this->name;
}
/**
* @param null|string $name
*/
public function setName(?string $name): void
{
$this->name = $name;
}
/**
* @return Country
*/
public function getCountry(): ?Country
{
return $this->country;
}
/**
* @param Country $country
* @return City
*/
public function setCountry(Country $country): self
{
$this->country = $country;
return $this;
}
/**
* @return mixed
*/
public function getCities()
{
return $this->cities;
}
/**
* @return string|null
*/
public function getAlpha2(): ?string
{
return $this->alpha2;
}
/**
* @param string $alpha2
* @return $this
*/
public function setAlpha2(string $alpha2): self
{
$this->alpha2 = $alpha2;
return $this;
}
}