<?php
namespace App\Entity;
use App\Repository\VilleRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=VilleRepository::class)
*/
class Ville
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $name;
/**
* @ORM\OneToMany(targetEntity=User::class, mappedBy="ville")
*/
private $users;
/**
* @ORM\OneToMany(targetEntity=Quartier::class, mappedBy="ville")
* @ORM\OrderBy({"name" = "ASC"})
*/
private $quartiers;
/**
* @ORM\ManyToOne(targetEntity=Pays::class, inversedBy="villes")
*/
private $pays;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $distancearrodissement;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $distanceannulation;
/**
* @ORM\OneToMany(targetEntity=LivraisonVille::class, mappedBy="ville")
*/
private $livraisonVilles;
/**
* @ORM\OneToMany(targetEntity=Zone::class, mappedBy="ville")
*/
private $zones;
public function __construct()
{
$this->users = new ArrayCollection();
$this->quartiers = new ArrayCollection();
$this->livraisonVilles = new ArrayCollection();
$this->zones = new ArrayCollection();
}
public function __toString(){
return $this->getName();
}
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
/**
* @return Collection<int, User>
*/
public function getUsers(): Collection
{
return $this->users;
}
public function addUser(User $user): self
{
if (!$this->users->contains($user)) {
$this->users[] = $user;
$user->setVille($this);
}
return $this;
}
public function removeUser(User $user): self
{
if ($this->users->removeElement($user)) {
// set the owning side to null (unless already changed)
if ($user->getVille() === $this) {
$user->setVille(null);
}
}
return $this;
}
/**
* @return Collection<int, Quartier>
*/
public function getQuartiers(): Collection
{
return $this->quartiers;
}
public function addQuartier(Quartier $quartier): self
{
if (!$this->quartiers->contains($quartier)) {
$this->quartiers[] = $quartier;
$quartier->setVille($this);
}
return $this;
}
public function removeQuartier(Quartier $quartier): self
{
if ($this->quartiers->removeElement($quartier)) {
// set the owning side to null (unless already changed)
if ($quartier->getVille() === $this) {
$quartier->setVille(null);
}
}
return $this;
}
public function getPays(): ?Pays
{
return $this->pays;
}
public function setPays(?Pays $pays): self
{
$this->pays = $pays;
return $this;
}
public function getDistancearrodissement(): ?int
{
return $this->distancearrodissement;
}
public function setDistancearrodissement(?int $distancearrodissement): self
{
$this->distancearrodissement = $distancearrodissement;
return $this;
}
public function getDistanceannulation(): ?int
{
return $this->distanceannulation;
}
public function setDistanceannulation(?int $distanceannulation): self
{
$this->distanceannulation = $distanceannulation;
return $this;
}
/**
* @return Collection<int, LivraisonVille>
*/
public function getLivraisonVilles(): Collection
{
return $this->livraisonVilles;
}
public function addLivraisonVille(LivraisonVille $livraisonVille): self
{
if (!$this->livraisonVilles->contains($livraisonVille)) {
$this->livraisonVilles[] = $livraisonVille;
$livraisonVille->setVille($this);
}
return $this;
}
public function removeLivraisonVille(LivraisonVille $livraisonVille): self
{
if ($this->livraisonVilles->removeElement($livraisonVille)) {
// set the owning side to null (unless already changed)
if ($livraisonVille->getVille() === $this) {
$livraisonVille->setVille(null);
}
}
return $this;
}
/**
* @return Collection<int, Zone>
*/
public function getZones(): Collection
{
return $this->zones;
}
public function addZone(Zone $zone): self
{
if (!$this->zones->contains($zone)) {
$this->zones[] = $zone;
$zone->setVille($this);
}
return $this;
}
public function removeZone(Zone $zone): self
{
if ($this->zones->removeElement($zone)) {
// set the owning side to null (unless already changed)
if ($zone->getVille() === $this) {
$zone->setVille(null);
}
}
return $this;
}
}