<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\TrafficRepository")
*/
class Traffic
{
const TYPE_VIEW = 1;
const TYPE_IMPRESSION = 2;
const TYPE_LINK_CLICK = 3;
const TYPE_MEDIA_GROUP_ITEM_IMPRESSION = 4;
const TYPE_MEDIA_GROUP_ITEM_CLICK = 5;
const TYPE_LINK_CATCHALL = 6;
/**
* @ORM\Id @ORM\Column(type="string", length=40)
*/
private $hash;
/**
* @ORM\Id @ORM\Column(type="string", length=64)
*/
private $user_token;
/**
* @ORM\Column(type="string", length=48)
*/
private $user_ip;
/**
* @ORM\Column(type="string", length=255)
*/
private $user_ua;
/**
* @ORM\Column(type="string", length=255)
*/
private $user_refer;
/**
* @ORM\Column(type="string", length=255)
*/
private $user_this_path;
/**
* @ORM\Column(type="string", length=64)
*/
private $user_this_route;
/**
* @ORM\Column(type="string", length=255)
*/
private $user_this_route_params;
/**
* @ORM\Column(type="string", length=255)
*/
private $user_last_path;
/**
* @ORM\Column(type="string", length=64)
*/
private $user_last_route;
/**
* @ORM\Column(type="string", length=255)
*/
private $user_last_route_params;
/**
* @ORM\Column(type="text")
*/
private $user_request_data;
/**
* @ORM\Column(type="text")
*/
private $link_catchall_href;
/**
* @ORM\Column(type="datetime")
*/
private $requested_at;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="traffic", cascade={"persist"})
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $user;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Content", inversedBy="traffic", cascade={"persist"})
* @ORM\JoinColumn(name="content_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $content;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Link", inversedBy="traffic", cascade={"persist"})
* @ORM\JoinColumn(name="link_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $link;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\MediaGroupItem", inversedBy="traffic", cascade={"persist"})
* @ORM\JoinColumn(name="media_group_item_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $media_group_item;
/**
* @ORM\Column(type="integer")
*/
private $type;
public function __construct()
{
$this->type = 0;
$this->link_catchall_href = "";
}
public function getId()
{
return $this->id;
}
public function getHash(): ?string
{
return $this->hash;
}
public function setHash(string $hash): self
{
$this->hash = $hash;
return $this;
}
public function getUserToken(): ?string
{
return $this->user_token;
}
public function setUserToken(string $user_token): self
{
$this->user_token = $user_token;
return $this;
}
public function getUserIp(): ?string
{
return $this->user_ip;
}
public function setUserIp(string $user_ip = null): self
{
$this->user_ip = $user_ip ? $user_ip : "";
return $this;
}
public function getUserUa(): ?string
{
return $this->user_ua;
}
public function setUserUa(string $user_ua = null): self
{
$this->user_ua = $user_ua ? $user_ua : "";
return $this;
}
public function getUserRefer(): ?string
{
return $this->user_refer;
}
public function setUserRefer(string $user_refer = null): self
{
$this->user_refer = $user_refer ? $user_refer : "";
return $this;
}
public function getUserThisPath(): ?string
{
return $this->user_this_path;
}
public function setUserThisPath(string $user_this_path = null): self
{
$this->user_this_path = $user_this_path ? $user_this_path : "";
//should we link this to content?
return $this;
}
public function getUserThisRoute(): ?string
{
return $this->user_this_route;
}
public function setUserThisRoute(string $user_this_route = null): self
{
$this->user_this_route = $user_this_route ? $user_this_route : "";
return $this;
}
public function getUserThisRouteParams(): ?string
{
return $this->user_this_route_params;
}
public function setUserThisRouteParams(string $user_this_route_params = null): self
{
$this->user_this_route_params = $user_this_route_params ? $user_this_route_params : "";
return $this;
}
public function getUserLastPath(): ?string
{
return $this->user_last_path;
}
public function setUserLastPath(string $user_last_path = null): self
{
$this->user_last_path = $user_last_path ? $user_last_path : "";
return $this;
}
public function getUserLastRoute(): ?string
{
return $this->user_last_route;
}
public function setUserLastRoute(string $user_last_route = null): self
{
$this->user_last_route = $user_last_route ? $user_last_route : "";
return $this;
}
public function getUserLastRouteParams(): ?string
{
return $this->user_last_route_params;
}
public function setUserLastRouteParams(string $user_last_route_params = null): self
{
$this->user_last_route_params = $user_last_route_params ? $user_last_route_params : "";
return $this;
}
public function getUserRequestData(): ?string
{
return $this->user_request_data;
}
public function setUserRequestData(string $user_request_data = null): self
{
$this->user_request_data = $user_request_data ? $user_request_data : "";
return $this;
}
public function getLinkCatchallHref(): ?string
{
return $this->link_catchall_href;
}
public function setLinkCatchallHref(string $link_catchall_href = null): self
{
$this->link_catchall_href = $link_catchall_href ? $link_catchall_href : "";
return $this;
}
public function getRequestedAt(): ?\DateTimeInterface
{
return $this->requested_at;
}
public function setRequestedAt(\DateTimeInterface $requested_at): self
{
$this->requested_at = $requested_at;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
public function getContent(): ?Content
{
return $this->content;
}
public function setContent(?Content $content): self
{
$this->content = $content;
return $this;
}
public function getLink(): ?Link
{
return $this->link;
}
public function setLink(?Link $link): self
{
$this->link = $link;
return $this;
}
public function getMediaGroupItem(): ?MediaGroupItem
{
return $this->media_group_item;
}
public function setMediaGroupItem(?MediaGroupItem $item): self
{
$this->media_group_item = $item;
return $this;
}
public function getType(): ?int
{
return $this->type;
}
public function setType(int $type): self
{
$this->type = $type;
return $this;
}
}