<?php namespace Lc\ShopBundle\Model; use App\Entity\OrderShop; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\ORM\Mapping as ORM; /** * @ORM\MappedSuperclass() */ abstract class Visitor { /** * @ORM\Column(type="string", length=255) */ protected $cookie; /** * @ORM\Column(type="datetime") */ protected $lastAccess; /** * @ORM\Column(type="string", length=255) */ protected $ip; /** * @ORM\Column(type="integer") */ protected $totalVisit; /** * @ORM\OneToMany(targetEntity="App\Entity\OrderShop", mappedBy="visitor") */ protected $orders; public function __construct() { $this->orders = new ArrayCollection(); } public function getCookie(): ?string { return $this->cookie; } public function setCookie(?string $cookie): self { $this->cookie = $cookie; return $this; } public function getLastAccess(): ?\DateTimeInterface { return $this->lastAccess; } public function setLastAccess(\DateTimeInterface $lastAccess): self { $this->lastAccess = $lastAccess; return $this; } public function getIp(): ?string { return $this->ip; } public function setIp(?string $ip): self { $this->ip = $ip; return $this; } public function getTotalVisit(): ?int { return $this->totalVisit; } public function setTotalVisit(int $totalVisit): self { $this->totalVisit = $totalVisit; return $this; } /** * @return Collection|OrderShop[] */ public function getOrders(): Collection { return $this->orders; } public function addOrder(OrderShop $order): self { if (!$this->orders->contains($order)) { $this->orders[] = $order; $order->setVisitor($this); } return $this; } public function removeOrder(OrderShop $order): self { if ($this->orders->contains($order)) { $this->orders->removeElement($order); // set the owning side to null (unless already changed) if ($order->getVisitor() === $this) { $order->setVisitor(null); } } return $this; } }