src/Entity/User/UserRights.php line 19

  1. <?php
  2. namespace App\Entity\User;
  3. use App\Entity\Common\Owner;
  4. use App\Entity\Traits\ActiveTrait;
  5. use App\Entity\Traits\TrackerFields;
  6. use App\Entity\Traits\UserCreatedInterface;
  7. use App\Entity\Traits\UserUpdatedInterface;
  8. use Doctrine\ORM\Mapping as ORM;
  9. /**
  10.  * Class UserRights
  11.  * @package App\Entity\User
  12.  */
  13. #[ORM\Table(name'user_rights')]
  14. #[ORM\Entity(repositoryClass'App\Repository\User\UserRightsRepository')]
  15. #[ORM\HasLifecycleCallbacks]
  16. class UserRights implements UserCreatedInterfaceUserUpdatedInterface
  17. {
  18.     use ActiveTrait;
  19.     use TrackerFields;
  20.     public const OLYMPIAD_ADMIN 'admin';
  21.     public const OLYMPIAD_JURY 'jury';
  22.     public static function getOlympiadRoles(): array
  23.     {
  24.         return [
  25.             self::OLYMPIAD_ADMIN,
  26.             self::OLYMPIAD_JURY,
  27.         ];
  28.     }
  29.     /**
  30.      * @var int|null
  31.      */
  32.     #[ORM\Id]
  33.     #[ORM\GeneratedValue(strategy'AUTO')]
  34.     #[ORM\Column(type'integer')]
  35.     private int $id;
  36.     /**
  37.      * @var User
  38.      *
  39.      */
  40.     #[ORM\ManyToOne(targetEntity'App\Entity\User\User')]
  41.     #[ORM\JoinColumn(nullablefalse)]
  42.     private User $user;
  43.     /**
  44.      * @var Owner
  45.      */
  46.     #[ORM\Embedded(class: 'App\Entity\Common\Owner')]
  47.     private Owner $owner;
  48.     /**
  49.      * @var string
  50.      */
  51.     #[ORM\Column(type'string')]
  52.     private string $role;
  53.     /**
  54.      * @var array
  55.      */
  56.     #[ORM\Column(type'json')]
  57.     private array $payload = [];
  58.     public function __construct()
  59.     {
  60.         $this->owner = new Owner();
  61.     }
  62.     /**
  63.      * @return int|null
  64.      */
  65.     public function getId(): ?int
  66.     {
  67.         return $this->id;
  68.     }
  69.     /**
  70.      * @param int $id
  71.      */
  72.     public function setId(int $id): void
  73.     {
  74.         $this->id $id;
  75.     }
  76.     /**
  77.      * @return User
  78.      */
  79.     public function getUser(): User
  80.     {
  81.         return $this->user;
  82.     }
  83.     /**
  84.      * @param User $user
  85.      */
  86.     public function setUser(User $user): void
  87.     {
  88.         $this->user $user;
  89.     }
  90.     /**
  91.      * @return Owner
  92.      */
  93.     public function getOwner(): Owner
  94.     {
  95.         return $this->owner;
  96.     }
  97.     /**
  98.      * @param Owner $owner
  99.      */
  100.     public function setOwner(Owner $owner): void
  101.     {
  102.         $this->owner $owner;
  103.     }
  104.     /**
  105.      * @return string
  106.      */
  107.     public function getRole(): string
  108.     {
  109.         return $this->role;
  110.     }
  111.     /**
  112.      * @param string $role
  113.      */
  114.     public function setRole(string $role): void
  115.     {
  116.         $this->role $role;
  117.     }
  118.     /**
  119.      * @return array
  120.      */
  121.     public function getPayload(): array
  122.     {
  123.         return $this->payload;
  124.     }
  125.     /**
  126.      * @param array $payload
  127.      */
  128.     public function setPayload(array $payload): void
  129.     {
  130.         $this->payload $payload;
  131.     }
  132. }