src/Entity/PersonalResource.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\Common\LibraryVoterInterface;
  4. use App\Entity\Common\ResourceFileInterface;
  5. use App\Entity\Traits\BaseDateAtTrait;
  6. use App\Entity\Traits\ResourceActionsTrait;
  7. use App\Entity\Traits\ResourceFileTrait;
  8. use App\Repository\PersonalResourceRepository;
  9. use App\Security\Voter\Library\PersonalLibraryVoter;
  10. use Doctrine\ORM\Mapping as ORM;
  11. use Doctrine\ORM\Mapping\JoinColumn;
  12. #[ORM\Entity(repositoryClassPersonalResourceRepository::class)]
  13. #[ORM\HasLifecycleCallbacks]
  14. class PersonalResource implements LibraryVoterInterfaceResourceFileInterface
  15. {
  16.     use ResourceFileTrait;
  17.     use ResourceActionsTrait;
  18.     use BaseDateAtTrait;
  19.     public const PRIVATE_FOLDER_NAME 'personal';
  20.     #[ORM\Id]
  21.     #[ORM\GeneratedValue]
  22.     #[ORM\Column(type'integer')]
  23.     private $id;
  24.     #[ORM\ManyToOne(targetEntityUser::class, inversedBy'personalResources')]
  25.     private $user;
  26.     #[ORM\ManyToOne(targetEntityPersonalFolder::class, inversedBy'personalResources'cascade: ['persist'])]
  27.     #[JoinColumn(onDelete'CASCADE')]
  28.     private $personalFolder;
  29.     #[ORM\OneToOne(targetEntityReadingCard::class, inversedBy'personalResource'cascade: ['remove'])]
  30.     #[ORM\JoinColumn(name'reading_card_id'referencedColumnName'id'nullabletrueonDelete'CASCADE')]
  31.     private $readingCard;
  32.     public function getId(): ?int
  33.     {
  34.         return $this->id;
  35.     }
  36.     public function getUser(): ?User
  37.     {
  38.         return $this->user;
  39.     }
  40.     /**
  41.      * @return $this
  42.      */
  43.     public function setUser(?User $user): self
  44.     {
  45.         $this->user $user;
  46.         return $this;
  47.     }
  48.     public function getPersonalFolder(): ?PersonalFolder
  49.     {
  50.         return $this->personalFolder;
  51.     }
  52.     public function setPersonalFolder(?PersonalFolder $personalFolder): self
  53.     {
  54.         $this->personalFolder $personalFolder;
  55.         return $this;
  56.     }
  57.     public function getParent(): ?PersonalFolder
  58.     {
  59.         return $this->getPersonalFolder();
  60.     }
  61.     public function setParent(?PersonalFolder $personalFolder): self
  62.     {
  63.         return $this->setPersonalFolder($personalFolder);
  64.     }
  65.     public function getReadingCard(): ?ReadingCard
  66.     {
  67.         return $this->readingCard;
  68.     }
  69.     public function setReadingCard(?ReadingCard $readingCard): self
  70.     {
  71.         // unset the owning side of the relation if necessary
  72.         if ($readingCard === null && $this->readingCard !== null) {
  73.             $this->readingCard->setPersonalResource(null);
  74.         }
  75.         // set the owning side of the relation if necessary
  76.         if ($readingCard !== null && $readingCard->getPersonalResource() !== $this) {
  77.             $readingCard->setPersonalResource($this);
  78.         }
  79.         $this->readingCard $readingCard;
  80.         return $this;
  81.     }
  82.     public function getLibraryVoter(): string
  83.     {
  84.         return PersonalLibraryVoter::class;
  85.     }
  86.     public function getPrivateFileIdentificator(): ?int
  87.     {
  88.         return $this->getUser() ? $this->getUser()->getId() : null;
  89.     }
  90. }