<?php
namespace App\Entity;
use App\Classes\Hasher;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
/**
* Label
*
* @ORM\Table(name="malys_access_token")
* @ORM\Entity(repositoryClass="App\Repository\AccessTokenRepository")
* @ORM\HasLifecycleCallbacks()
*/
class AccessToken
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
public $user;
/**
* @ORM\Column(name="hash", type="string", nullable=false)
*/
protected $hash;
/**
* @var DateTime
*
* @ORM\Column(name="createdAt", type="datetime", nullable=false)
*/
protected $createdAt;
/**
* @var DateTime
*
* @ORM\Column(name="updatedAt", type="datetime", nullable=true)
*/
protected $updatedAt;
/**
* @var DateTime
*
* @ORM\Column(name="accessedAt", type="datetime", nullable=true)
*/
protected $accessedAt;
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @return mixed
*/
public function getUser()
{
return $this->user;
}
/**
* @param mixed $user
*/
public function setUser($user): void
{
$this->user = $user;
}
/**
* @return mixed
*/
public function getHash()
{
return $this->hash;
}
/**
* @param mixed $hash
*/
public function setHash($hash): void
{
$this->hash = $hash;
}
/**
* @return DateTime
*/
public function getCreatedAt(): DateTime
{
return $this->createdAt;
}
/**
* Set createdAt
* @ORM\PrePersist
*/
public function setCreatedAt()
{
$this->createdAt = new DateTime();
$this->updatedAt = new DateTime();
return $this;
}
/**
* @return DateTime
*/
public function getUpdatedAt(): DateTime
{
return $this->updatedAt;
}
/**
* Set updatedAt
* @ORM\PreUpdate
*/
public function setUpdatedAt()
{
$this->updatedAt = new DateTime();
return $this;
}
/**
* @return DateTime
*/
public function getAccessedAt(): ?DateTime
{
return $this->accessedAt;
}
/**
* @param DateTime $accessedAt
*/
public function setAccessedAt(DateTime $accessedAt): void
{
$this->accessedAt = $accessedAt;
}
/**
* @ORM\PrePersist
*/
public function installHash()
{
if (is_null($this->hash)) {
$this->hash = Hasher::generateHash(self::class);
}
}
}