<?php
namespace App\Entity;
use DateTime;
use App\Repository\DomiciliosRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=DomiciliosRepository::class)
* @ORM\HasLifecycleCallbacks()
*/
class Domicilios
{
use Timestamp;
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="time", nullable=true)
*/
private $departure_time;
/**
* @ORM\Column(type="time", nullable=true)
*/
private $arrived_time;
/**
* @ORM\ManyToOne(targetEntity=user::class, inversedBy="domicilios")
* @ORM\JoinColumn(nullable=false)
*/
private $user;
/**
* @ORM\ManyToOne(targetEntity=cabecera::class, inversedBy="domicilios", fetch="LAZY")
* @ORM\JoinColumn(nullable=true)
*/
private $cabecera;
/**
* @ORM\ManyToOne(targetEntity=EcommerceCabecera::class, inversedBy="domicilios", fetch="LAZY")
* @ORM\JoinColumn(nullable=true)
*/
private $ecommerce_cabecera;
/**
* @ORM\Column(type="string", length=50)
*/
private $source; // puede tener valores 'cabecera' o 'ecommerce'
public function getId(): ?int
{
return $this->id;
}
public function getDepartureTime(): ?\DateTimeInterface
{
return $this->departure_time;
}
public function setDepartureTime(?\DateTimeInterface $departure_time): self
{
$this->departure_time = $departure_time;
return $this;
}
public function getArrivedTime(): ?\DateTimeInterface
{
return $this->arrived_time;
}
public function setArrivedTime(\DateTimeInterface $arrived_time): self
{
$this->arrived_time = $arrived_time;
return $this;
}
public function getUser(): ?user
{
return $this->user;
}
public function setUser(?user $user): self
{
$this->user = $user;
return $this;
}
public function getCabecera(): ?Cabecera
{
return $this->cabecera;
}
public function setCabecera(Cabecera $cabecera): self
{
$this->cabecera = $cabecera;
$this->source = 'cabecera';
return $this;
}
public function getEcommerceCabecera(): ?EcommerceCabecera
{
return $this->ecommerce_cabecera;
}
public function setEcommerceCabecera(EcommerceCabecera $ecommerce_cabecera): self
{
$this->ecommerce_cabecera = $ecommerce_cabecera;
$this->source = 'ecommerce';
return $this;
}
/**
* @ORM\PrePersist
*/
public function setDepartureTimeAutomatically()
{
if ($this->getDepartureTime() === null) {
$this->setDepartureTime(new \DateTime());
}
}
public function getSource(): ?string
{
return $this->source;
}
public function setSource(string $source): static
{
$this->source = $source;
return $this;
}
}