<?phpnamespace 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; }}