<?php
namespace App\AtechNet\CoreBundle\Entity;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\GeneratedValue;
use Doctrine\ORM\Mapping\HasLifecycleCallbacks;
use Doctrine\ORM\Mapping\Id;
use Doctrine\ORM\Mapping\JoinColumn;
use Doctrine\ORM\Mapping\ManyToOne;
use Doctrine\ORM\Mapping\PrePersist;
use Doctrine\ORM\Mapping\Table as Table;
use Symfony\Component\Validator\Constraints as Assert;
/**
* UserPermissionChangeLog
*
* @Table(name="users_permission_changelog")
* @Entity
* @HasLifecycleCallbacks
*/
class UserPermissionChangeLog
{
/**
* @Id
* @Column(name="id", type="integer")
* @GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var User
*
* @Assert\NotNull
*
* @ManyToOne(targetEntity="User", inversedBy="permissionChangelog")
* @JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;
/**
* @var string
*
* @Assert\NotNull
*
* @Column(name="reason", type="text", length=5000, nullable=true)
*/
private $reason;
/**
* @var array
*
* @Assert\NotNull
*
* @Column(name="changes", type="array", nullable=false)
*/
private $changes;
/**
* @var User
*
* @ManyToOne(targetEntity="User")
* @JoinColumn(name="created_by", referencedColumnName="id")
*/
private $createdBy;
/**
* @var \DateTime
*
* @Assert\NotNull
*
* @Column(name="created", type="datetime", nullable=false)
*/
private $created;
public function __construct()
{
$this->created = new \DateTime();
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*/
public function setId(int $id): void
{
$this->id = $id;
}
/**
* @return User
*/
public function getUser(): User
{
return $this->user;
}
/**
* @param User $user
*/
public function setUser(User $user): void
{
$this->user = $user;
}
/**
* @return string|null
*/
public function getReason(): ?string
{
return $this->reason;
}
/**
* @param string|null $reason
*/
public function setReason(?string $reason)
{
$this->reason = $reason;
}
/**
* @return array
*/
public function getChanges(): array
{
return $this->changes;
}
/**
* @param array $changes
*/
public function setChanges(array $changes)
{
$this->changes = $changes;
}
/**
* @return User
*/
public function getCreatedBy(): User
{
return $this->createdBy;
}
/**
* @param User $createdBy
*/
public function setCreatedBy(User $createdBy): void
{
$this->createdBy = $createdBy;
}
/**
* @return \DateTime
*/
public function getCreated(): \DateTime
{
return $this->created;
}
/**
* @param \DateTime $created
*/
public function setCreated(\DateTime $created): void
{
$this->created = $created;
}
/**
* @PrePersist
*/
public function setTimestamps()
{
if ($this->created === null) {
$this->created = new \DateTime();
}
}
}