<?php
namespace App\Entity;
use App\Utility\GuidUtility;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\ParameterBag;
/**
* @ORM\Entity
*
* @ORM\Table(
* name="anonymous_user_info",
* indexes={
*
* @ORM\Index(name="token_idx", columns={"token"})
* }
* )
*/
class AnonymousUserInfo
{
public function __construct(DateTime $createdAt, ParameterBag $searchParameters)
{
$this->createdAt = $createdAt;
$this->searchParameters = $searchParameters;
}
/**
* @var string
*
* @ORM\GeneratedValue(strategy="CUSTOM")
*
* @ORM\CustomIdGenerator(class="App\Utility\DatabaseIdGenerator")
*
* @ORM\Column(name="id", type="guid")
*
* @ORM\Id
*/
protected $id;
public function setId(string $id): void
{
GuidUtility::validOrThrow($id);
$this->id = $id;
}
public function getId()
{
return $this->id;
}
/**
* @var DateTime
*
* @ORM\Column(name="created_at", type="datetime", nullable=false)
*/
protected $createdAt;
public function getCreatedAt(): DateTime
{
return $this->createdAt;
}
public function setCreatedAt(ParameterBag $createdAt): void
{
$this->createdAt = $createdAt;
}
/**
* @var ParameterBag
*
* @ORM\Column(name="search_parameters", type="object")
*/
protected $searchParameters;
public function getSearchParameters(): ParameterBag
{
return $this->searchParameters;
}
public function setSearchParameters(ParameterBag $searchParameters): void
{
$this->searchParameters = $searchParameters;
}
/**
* @ORM\Column(name="token", type="text", length=128, nullable=true)
*/
protected $token;
public function setToken(?string $token): void
{
$this->token = $token;
}
public function getToken(): ?string
{
return $this->token;
}
}