src/AtechNet/CoreBundle/Entity/UserPermissionChangeLog.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\AtechNet\CoreBundle\Entity;
  3. use Doctrine\ORM\Mapping\Column;
  4. use Doctrine\ORM\Mapping\Entity;
  5. use Doctrine\ORM\Mapping\GeneratedValue;
  6. use Doctrine\ORM\Mapping\HasLifecycleCallbacks;
  7. use Doctrine\ORM\Mapping\Id;
  8. use Doctrine\ORM\Mapping\JoinColumn;
  9. use Doctrine\ORM\Mapping\ManyToOne;
  10. use Doctrine\ORM\Mapping\PrePersist;
  11. use Doctrine\ORM\Mapping\Table as Table;
  12. use Symfony\Component\Validator\Constraints as Assert;
  13. /**
  14.  * UserPermissionChangeLog
  15.  *
  16.  * @Table(name="users_permission_changelog")
  17.  * @Entity
  18.  * @HasLifecycleCallbacks
  19.  */
  20. class UserPermissionChangeLog
  21. {
  22.     /**
  23.      * @Id
  24.      * @Column(name="id", type="integer")
  25.      * @GeneratedValue(strategy="AUTO")
  26.      */
  27.     private $id;
  28.     /**
  29.      * @var User
  30.      *
  31.      * @Assert\NotNull
  32.      *
  33.      * @ManyToOne(targetEntity="User", inversedBy="permissionChangelog")
  34.      * @JoinColumn(name="user_id", referencedColumnName="id")
  35.      */
  36.     private $user;
  37.     /**
  38.      * @var string
  39.      *
  40.      * @Assert\NotNull
  41.      *
  42.      * @Column(name="reason", type="text", length=5000, nullable=true)
  43.      */
  44.     private $reason;
  45.     /**
  46.      * @var array
  47.      *
  48.      * @Assert\NotNull
  49.      *
  50.      * @Column(name="changes", type="array", nullable=false)
  51.      */
  52.     private $changes;
  53.     /**
  54.      * @var User
  55.      *
  56.      * @ManyToOne(targetEntity="User")
  57.      * @JoinColumn(name="created_by", referencedColumnName="id")
  58.      */
  59.     private $createdBy;
  60.     /**
  61.      * @var \DateTime
  62.      *
  63.      * @Assert\NotNull
  64.      *
  65.      * @Column(name="created", type="datetime", nullable=false)
  66.      */
  67.     private $created;
  68.     public function __construct()
  69.     {
  70.         $this->created = new \DateTime();
  71.     }
  72.     /**
  73.      * @return int
  74.      */
  75.     public function getId(): int
  76.     {
  77.         return $this->id;
  78.     }
  79.     /**
  80.      * @param int $id
  81.      */
  82.     public function setId(int $id): void
  83.     {
  84.         $this->id = $id;
  85.     }
  86.     /**
  87.      * @return User
  88.      */
  89.     public function getUser(): User
  90.     {
  91.         return $this->user;
  92.     }
  93.     /**
  94.      * @param User $user
  95.      */
  96.     public function setUser(User $user): void
  97.     {
  98.         $this->user = $user;
  99.     }
  100.     /**
  101.      * @return string|null
  102.      */
  103.     public function getReason(): ?string
  104.     {
  105.         return $this->reason;
  106.     }
  107.     /**
  108.      * @param string|null $reason
  109.      */
  110.     public function setReason(?string $reason)
  111.     {
  112.         $this->reason = $reason;
  113.     }
  114.     /**
  115.      * @return array
  116.      */
  117.     public function getChanges(): array
  118.     {
  119.         return $this->changes;
  120.     }
  121.     /**
  122.      * @param array $changes
  123.      */
  124.     public function setChanges(array $changes)
  125.     {
  126.         $this->changes = $changes;
  127.     }
  128.     /**
  129.      * @return User
  130.      */
  131.     public function getCreatedBy(): User
  132.     {
  133.         return $this->createdBy;
  134.     }
  135.     /**
  136.      * @param User $createdBy
  137.      */
  138.     public function setCreatedBy(User $createdBy): void
  139.     {
  140.         $this->createdBy = $createdBy;
  141.     }
  142.     /**
  143.      * @return \DateTime
  144.      */
  145.     public function getCreated(): \DateTime
  146.     {
  147.         return $this->created;
  148.     }
  149.     /**
  150.      * @param \DateTime $created
  151.      */
  152.     public function setCreated(\DateTime $created): void
  153.     {
  154.         $this->created = $created;
  155.     }
  156.     /**
  157.      * @PrePersist
  158.      */
  159.     public function setTimestamps()
  160.     {
  161.         if ($this->created === null) {
  162.             $this->created = new \DateTime();
  163.         }
  164.     }
  165. }