<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* Track
*
* @ORM\Table(name="trace")
* @ORM\Entity(repositoryClass="App\Repository\TraceRepository")
*/
class Trace
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string|null
*
* @ORM\Column(name="type", type="string", length=255, nullable=false)
*/
private $type;
/**
* @var int|null
*
* @ORM\Column(name="authorId", type="integer", nullable=true)
*/
private $authorId;
/**
* @var string|null
*
* @ORM\Column(name="authorClass", type="string", length=255, nullable=true)
*/
private $authorClass;
/**
* @var int|null
*
* @ORM\Column(name="subjectId", type="integer", nullable=true)
*/
private $subjectId;
/**
* @var string|null
*
* @ORM\Column(name="subjectClass", type="string", length=255, nullable=true)
*/
private $subjectClass;
/**
* @var array|null
*
* @ORM\Column(name="details", type="array", nullable=true)
*/
private $details;
/**
* @var \DateTime
* @Gedmo\Timestampable(on="create")
* @ORM\Column(name="created", type="datetime")
*/
private $created;
/**
* @var string|null
*
* @ORM\Column(name="ip", type="string", length=255, nullable=true)
*/
private $ip;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User")
* @ORM\JoinColumn(name="impersonator_user_id", referencedColumnName="id")
*/
public $impersonator;
/**
* Get id.
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set authorId.
*
* @param int|null $authorId
*
* @return Trace
*/
public function setAuthorId($authorId = null)
{
$this->authorId = $authorId;
return $this;
}
/**
* Get authorId.
*
* @return int|null
*/
public function getAuthorId()
{
return $this->authorId;
}
/**
* Set authorClass.
*
* @param string|null $authorClass
*
* @return Trace
*/
public function setAuthorClass($authorClass = null)
{
$this->authorClass = $authorClass;
return $this;
}
/**
* Get authorClass.
*
* @return string|null
*/
public function getAuthorClass()
{
return $this->authorClass;
}
/**
* Set subjectId.
*
* @param int|null $subjectId
*
* @return Trace
*/
public function setSubjectId($subjectId = null)
{
$this->subjectId = $subjectId;
return $this;
}
/**
* Get subjectId.
*
* @return int|null
*/
public function getSubjectId()
{
return $this->subjectId;
}
/**
* Set subjectClass.
*
* @param string|null $subjectClass
*
* @return Trace
*/
public function setSubjectClass($subjectClass = null)
{
$this->subjectClass = $subjectClass;
return $this;
}
/**
* Get subjectClass.
*
* @return string|null
*/
public function getSubjectClass()
{
return $this->subjectClass;
}
/**
* Set details.
*
* @param array|null $details
*
* @return Trace
*/
public function setDetails($details = null)
{
$this->details = $details;
return $this;
}
/**
* Get details.
*
* @return array|null
*/
public function getDetails()
{
return $this->details;
}
/**
* Set created.
*
* @param \DateTime $created
*
* @return Trace
*/
public function setCreated($created)
{
$this->created = $created;
return $this;
}
/**
* Get created.
*
* @return \DateTime
*/
public function getCreated()
{
return $this->created;
}
/**
* @return null|string
*/
public function getType()
{
return $this->type;
}
/**
* @param null|string $type
*/
public function setType($type)
{
$this->type = $type;
}
/**
* @return string|null
*/
public function getIp(): ?string
{
return $this->ip;
}
/**
* @param string|null $ip
*/
public function setIp(?string $ip): void
{
$this->ip = $ip;
}
/**
* @return mixed
*/
public function getImpersonator(): ?User
{
return $this->impersonator;
}
/**
* @param mixed $impersonator
*/
public function setImpersonator(?User $impersonator): void
{
$this->impersonator = $impersonator;
}
}