<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Entity(repositoryClass="App\Repository\UbicacionAbstractRepository")
* @ORM\Table(name="ubicacion", schema="perseo")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({
* "general":"App\Entity\UbicacionGeneral",
* "proveedor":"App\Entity\UbicacionProveedor"
* })
* @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false, hardDelete=true)
*/
abstract class UbicacionAbstract
{
/**
* @ORM\Id
* @ORM\Column(type="bigint", options={"unsigned":true})
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", nullable=true)
*/
protected $nombre;
/**
* @ORM\Column(type="string", nullable=true)
*/
protected $descripcion;
/**
* @ORM\Column(type="datetime", nullable=true, name="deleted_at")
*/
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\OneToMany(targetEntity="App\Entity\AccionUbicacion", mappedBy="ubicacionActual")
*/
private $accionesUbicacionActual;
/**
* @ORM\OneToMany(targetEntity="App\Entity\AccionUbicacion", mappedBy="ubicacionAnterior")
*/
private $accionesUbicacionAnterior;
public function __construct()
{
$this->accionesUbicacionActual = new ArrayCollection();
$this->accionesUbicacionAnterior = new ArrayCollection();
}
public function __toString(): string
{
return $this->getNombre()??'---';
}
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 getDescripcion(): ?string
{
return $this->descripcion;
}
public function setDescripcion(?string $descripcion): self
{
$this->descripcion = $descripcion;
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<int, AccionUbicacion>
*/
public function getAccionesUbicacionActual(): Collection
{
return $this->accionesUbicacionActual;
}
public function addAccionesUbicacionActual(AccionUbicacion $accionesUbicacionActual): self
{
if (!$this->accionesUbicacionActual->contains($accionesUbicacionActual)) {
$this->accionesUbicacionActual->add($accionesUbicacionActual);
$accionesUbicacionActual->setUbicacionActual($this);
}
return $this;
}
public function removeAccionesUbicacionActual(AccionUbicacion $accionesUbicacionActual): self
{
if ($this->accionesUbicacionActual->removeElement($accionesUbicacionActual)) {
// set the owning side to null (unless already changed)
if ($accionesUbicacionActual->getUbicacionActual() === $this) {
$accionesUbicacionActual->setUbicacionActual(null);
}
}
return $this;
}
/**
* @return Collection<int, AccionUbicacion>
*/
public function getAccionesUbicacionAnterior(): Collection
{
return $this->accionesUbicacionAnterior;
}
public function addAccionesUbicacionAnterior(AccionUbicacion $accionesUbicacionAnterior): self
{
if (!$this->accionesUbicacionAnterior->contains($accionesUbicacionAnterior)) {
$this->accionesUbicacionAnterior->add($accionesUbicacionAnterior);
$accionesUbicacionAnterior->setUbicacionAnterior($this);
}
return $this;
}
public function removeAccionesUbicacionAnterior(AccionUbicacion $accionesUbicacionAnterior): self
{
if ($this->accionesUbicacionAnterior->removeElement($accionesUbicacionAnterior)) {
// set the owning side to null (unless already changed)
if ($accionesUbicacionAnterior->getUbicacionAnterior() === $this) {
$accionesUbicacionAnterior->setUbicacionAnterior(null);
}
}
return $this;
}
}