<?php
namespace App\CasinoBundle\Entity;
use App\CmsBundle\Entity\PublishedTrait;
use App\CmsBundle\Entity\TimeStampedTrait;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use App\CmsBundle\Entity\HideTrait;
use App\CmsBundle\Entity\SlugTrait;
use Doctrine\ORM\Mapping as ORM;
/**
* City
*
* @ORM\Table(
* name="city",
* indexes={
* @ORM\Index(name="city_id_index", columns={"id"}),
* @ORM\Index(name="city_lat_index", columns={"lat"}),
* @ORM\Index(name="city_lng_index", columns={"lng"}),
* @ORM\Index(name="city_published_index", columns={"published"}),
* @ORM\Index(name="city_capital_index", columns={"capital"}),
* @ORM\Index(name="city_population_index", columns={"population"}),
* },
* uniqueConstraints={
* @ORM\UniqueConstraint(name="city_slug_uindex", columns={"slug"})
* }
* )
* @ORM\Entity(repositoryClass="App\CasinoBundle\Repository\CityRepository")
* @ORM\HasLifecycleCallbacks()
*/
class City
{
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 string|null
*
* @ORM\Column(name="city_ascii", type="string", length=34, nullable=true)
*/
private $cityAscii;
/**
* @var float|null
*
* @ORM\Column(name="lat", type="float", precision=10, scale=0, nullable=true)
*/
private $lat;
/**
* @var float|null
*
* @ORM\Column(name="lng", type="float", precision=10, scale=0, nullable=true)
*/
private $lng;
/**
* @var string|null
*
* @ORM\Column(name="country", type="string", length=45, nullable=true)
*/
private $countryText;
/**
* @var string|null
*
* @ORM\Column(name="iso2", type="string", length=2, nullable=true)
*/
private $iso2;
/**
* @var string|null
*
* @ORM\Column(name="iso3", type="string", length=3, nullable=true)
*/
private $iso3;
/**
* @var string|null
*
* @ORM\Column(name="admin_name", type="string", length=54, nullable=true)
*/
private $adminName;
/**
* @var string|null
*
* @ORM\Column(name="capital", type="boolean", nullable=true)
*/
private $capital;
/**
* @var float|null
*
* @ORM\Column(name="population", type="float", precision=10, scale=0, nullable=true)
*/
private $population;
/**
* @var Country|null
* @ORM\ManyToOne(targetEntity="Country", inversedBy="cities")
* @ORM\JoinColumn(name="country_id", referencedColumnName="id")
*/
private $country;
/**
* @var State|null
* @ORM\ManyToOne(targetEntity="State", inversedBy="cities")
* @ORM\JoinColumn(name="state_id", referencedColumnName="id")
*/
private $state;
/**
* @ORM\OneToMany(targetEntity="App\CasinoBundle\Entity\OfflineCasino", mappedBy="city", cascade={"persist"}, orphanRemoval=true)
*/
private $offlineCasinos;
/**
* @ORM\OneToMany(targetEntity="App\CasinoBundle\Entity\Alias", mappedBy="city", cascade={"persist"}, orphanRemoval=true)
*/
private Collection $aliases;
public function __toString()
{
return $this->name;
}
public function __construct()
{
$this->aliases = new ArrayCollection();
}
/**
* @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 null|string
*/
public function getCityAscii(): ?string
{
return $this->cityAscii;
}
/**
* @param null|string $cityAscii
*/
public function setCityAscii(?string $cityAscii): void
{
$this->cityAscii = $cityAscii;
}
public function getLat(): ?float
{
return $this->lat;
}
public function setLat(?float $lat): self
{
$this->lat = $lat;
return $this;
}
public function getLng(): ?float
{
return $this->lng;
}
public function setLng(?float $lng): self
{
$this->lng = $lng;
return $this;
}
/**
* @return null|string
*/
public function getCountryText(): ?string
{
return $this->countryText;
}
/**
* @param null|string $countryText
*/
public function setCountryText(?string $countryText): void
{
$this->countryText = $countryText;
}
/**
* @return null|string
*/
public function getIso2(): ?string
{
return $this->iso2;
}
/**
* @param null|string $iso2
*/
public function setIso2(?string $iso2): void
{
$this->iso2 = $iso2;
}
/**
* @return null|string
*/
public function getIso3(): ?string
{
return $this->iso3;
}
/**
* @param null|string $iso3
*/
public function setIso3(?string $iso3): void
{
$this->iso3 = $iso3;
}
/**
* @return null|string
*/
public function getAdminName(): ?string
{
return $this->adminName;
}
/**
* @param null|string $adminName
*/
public function setAdminName(?string $adminName): void
{
$this->adminName = $adminName;
}
public function getCapital(): bool
{
return (bool)$this->capital;
}
public function setCapital(?bool $capital): self
{
if ($this->country) {
$this->country->setCapitalCity($this);
$this->capital = $capital;
}
return $this;
}
/**
* @return float|null
*/
public function getPopulation(): ?float
{
return $this->population;
}
/**
* @param float|null $population
*/
public function setPopulation(?float $population): void
{
$this->population = $population;
}
/**
* @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 State
*/
public function getState(): ?State
{
return $this->state;
}
/**
* @param State $state
* @return City
*/
public function setState(State $state): self
{
$this->state = $state;
return $this;
}
}