<?php
namespace App\Entity;
use App\Validator as PerseoAssert;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass="App\Repository\CiudadRepository")
* @ORM\Table(name="ciudad", schema="perseo")
* @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false, hardDelete=true)
* @PerseoAssert\ContraintsValidarEntidadCp()
*/
class Ciudad
{
/**
* @ORM\Id
* @ORM\Column(type="bigint")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100, nullable=false)
* @Gedmo\Translatable
*/
protected $nombre;
/**
* @ORM\Column(type="string", length=5, nullable=false)
* @Assert\Length(5)
*/
protected $cp;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
protected $deletedAt;
/**
* @ORM\Column(type="datetime", nullable=false, name="updated_at", options={"default":"2022-01-01 00:00:00"})
* @Gedmo\Timestampable(on="update")
*/
protected $updatedAt;
/**
* @ORM\Column(type="datetime", nullable=false, name="created_at", options={"default":"2022-01-01 00:00:00"})
* @Gedmo\Timestampable(on="create")
*/
protected $createdAt;
/**
* @ORM\Column(type="string", length=2, nullable=true, name="pais")
*/
protected $pais;
/**
* @ORM\OneToMany(targetEntity="App\Entity\User", mappedBy="ciudad")
*/
protected $user;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Cliente", mappedBy="ciudad")
*/
protected $clientes;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Venta", mappedBy="direccionFacturacionCiudad")
*/
protected $direccionFacturacionCiudadVentas;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Venta", mappedBy="direccionEnvioCiudad")
*/
protected $direccionEnvioCiudadVentas;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Banco", mappedBy="ciudad")
*/
protected $bancos;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Provincia", inversedBy="ciudades")
* @ORM\JoinColumn(name="provincia_id", referencedColumnName="id")
*/
protected $provincia;
public function __construct()
{
$this->user = new ArrayCollection();
$this->direccionFacturacionCiudadVentas = new ArrayCollection();
$this->direccionEnvioCiudadVentas = new ArrayCollection();
$this->bancos = new ArrayCollection();
$this->clientes = new ArrayCollection();
}
public function getId(): ?string
{
return $this->id;
}
public function getNombre(): ?string
{
return $this->nombre;
}
public function setNombre(string $nombre): self
{
$this->nombre = $nombre;
return $this;
}
public function getCp(): ?string
{
return $this->cp;
}
public function setCp(string $cp): self
{
$this->cp = $cp;
return $this;
}
public function getDeletedAt(): ?\DateTimeInterface
{
return $this->deletedAt;
}
public function setDeletedAt(?\DateTimeInterface $deletedAt): self
{
$this->deletedAt = $deletedAt;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function setUpdatedAt(\DateTimeInterface $updatedAt): self
{
$this->updatedAt = $updatedAt;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
/**
* @return Collection|User[]
*/
public function getUser(): Collection
{
return $this->user;
}
public function addUser(User $user): self
{
if (!$this->user->contains($user)) {
$this->user[] = $user;
$user->setCiudad($this);
}
return $this;
}
public function removeUser(User $user): self
{
if ($this->user->removeElement($user)) {
// set the owning side to null (unless already changed)
if ($user->getCiudad() === $this) {
$user->setCiudad(null);
}
}
return $this;
}
/**
* @return Collection|Venta[]
*/
public function getDireccionFacturacionCiudadVentas(): Collection
{
return $this->direccionFacturacionCiudadVentas;
}
public function addDireccionFacturacionCiudadVenta(Venta $direccionFacturacionCiudadVenta): self
{
if (!$this->direccionFacturacionCiudadVentas->contains($direccionFacturacionCiudadVenta)) {
$this->direccionFacturacionCiudadVentas[] = $direccionFacturacionCiudadVenta;
$direccionFacturacionCiudadVenta->setDireccionFacturacionCiudad($this);
}
return $this;
}
public function removeDireccionFacturacionCiudadVenta(Venta $direccionFacturacionCiudadVenta): self
{
if ($this->direccionFacturacionCiudadVentas->removeElement($direccionFacturacionCiudadVenta)) {
// set the owning side to null (unless already changed)
if ($direccionFacturacionCiudadVenta->getDireccionFacturacionCiudad() === $this) {
$direccionFacturacionCiudadVenta->setDireccionFacturacionCiudad(null);
}
}
return $this;
}
/**
* @return Collection|Venta[]
*/
public function getDireccionEnvioCiudadVentas(): Collection
{
return $this->direccionEnvioCiudadVentas;
}
public function addDireccionEnvioCiudadVenta(Venta $direccionEnvioCiudadVenta): self
{
if (!$this->direccionEnvioCiudadVentas->contains($direccionEnvioCiudadVenta)) {
$this->direccionEnvioCiudadVentas[] = $direccionEnvioCiudadVenta;
$direccionEnvioCiudadVenta->setDireccionEnvioCiudad($this);
}
return $this;
}
public function removeDireccionEnvioCiudadVenta(Venta $direccionEnvioCiudadVenta): self
{
if ($this->direccionEnvioCiudadVentas->removeElement($direccionEnvioCiudadVenta)) {
// set the owning side to null (unless already changed)
if ($direccionEnvioCiudadVenta->getDireccionEnvioCiudad() === $this) {
$direccionEnvioCiudadVenta->setDireccionEnvioCiudad(null);
}
}
return $this;
}
public function getProvincia(): ?Provincia
{
return $this->provincia;
}
public function setProvincia(?Provincia $provincia): self
{
$this->provincia = $provincia;
return $this;
}
public function getPais(): ?string
{
return $this->pais;
}
public function setPais(?string $pais): self
{
$this->pais = $pais;
return $this;
}
/**
* @return Collection|Banco[]
*/
public function getBancos(): Collection
{
return $this->bancos;
}
public function addBanco(Banco $banco): self
{
if (!$this->bancos->contains($banco)) {
$this->bancos[] = $banco;
$banco->setCiudad($this);
}
return $this;
}
public function removeBanco(Banco $banco): self
{
if ($this->bancos->removeElement($banco)) {
// set the owning side to null (unless already changed)
if ($banco->getCiudad() === $this) {
$banco->setCiudad(null);
}
}
return $this;
}
/**
* @return Collection|Cliente[]
*/
public function getClientes(): Collection
{
return $this->clientes;
}
public function addCliente(Cliente $cliente): self
{
if (!$this->clientes->contains($cliente)) {
$this->clientes[] = $cliente;
$cliente->setCiudad($this);
}
return $this;
}
public function removeCliente(Cliente $cliente): self
{
if ($this->clientes->removeElement($cliente)) {
// set the owning side to null (unless already changed)
if ($cliente->getCiudad() === $this) {
$cliente->setCiudad(null);
}
}
return $this;
}
}