src/Entity/ChannelUserData/Cursus/FileAbstractCursus.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity\ChannelUserData\Cursus;
  3. use App\Entity\Common\File;
  4. use App\Repository\ChannelUserData\Cursus\FileAbstractCursusRepository;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Nellapp\Bundle\SDKBundle\Permission\UserOwner\UserOwnerResourceInterface;
  7. use Symfony\Component\Validator\Constraints\NotBlank;
  8. use Symfony\Component\Serializer\Annotation as Serial;
  9. #[
  10. ORM\Entity(repositoryClass: FileAbstractCursusRepository::class),
  11. ORM\Table('file_abstract_cursus')
  12. ]
  13. class FileAbstractCursus extends File implements UserOwnerResourceInterface
  14. {
  15. #[ORM\ManyToOne(targetEntity: AbstractCursus::class)]
  16. #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
  17. private ?AbstractCursus $abstractCursus = null;
  18. #[ORM\Column(type: 'integer', nullable: false)]
  19. #[NotBlank(groups: ['PostFile', 'PutFile'])]
  20. #[Serial\Groups(['PostFile', 'PutFile', 'Manager'])]
  21. private ?int $tag = null;
  22. #[ORM\Column(type: 'boolean', nullable: false, options: ['default' => false])]
  23. #[Serial\Groups(['PostFile', 'PutFile', 'Manager'])]
  24. private bool $share = false;
  25. #[ORM\Column(type: 'date', nullable: true)]
  26. #[
  27. NotBlank(groups: ['ToRemoveAt']),
  28. ]
  29. #[Serial\Groups(['ToRemoveAt', 'Manager'])]
  30. private ?\DateTime $toRemoveAt = null;
  31. public static function getFileSystemAlias(): string
  32. {
  33. return 'cursus_filesystem';
  34. }
  35. public static function getUploaderAlias(): ?string
  36. {
  37. return 'cursus_upload';
  38. }
  39. public function getAbstractCursus(): ?AbstractCursus
  40. {
  41. return $this->abstractCursus;
  42. }
  43. public function setAbstractCursus(?AbstractCursus $abstractCursus): FileAbstractCursus
  44. {
  45. $this->abstractCursus = $abstractCursus;
  46. return $this;
  47. }
  48. public function getTag(): ?int
  49. {
  50. return $this->tag;
  51. }
  52. public function setTag(?int $tag): FileAbstractCursus
  53. {
  54. $this->tag = $tag;
  55. return $this;
  56. }
  57. public function getToRemoveAt(): ?\DateTime
  58. {
  59. return $this->toRemoveAt;
  60. }
  61. public function setToRemoveAt(?\DateTime $toRemoveAt): FileAbstractCursus
  62. {
  63. $this->toRemoveAt = $toRemoveAt;
  64. return $this;
  65. }
  66. public function isShare(): bool
  67. {
  68. return $this->share;
  69. }
  70. public function setShare(bool $share): FileAbstractCursus
  71. {
  72. $this->share = $share;
  73. return $this;
  74. }
  75. public function getUserOwners(): array
  76. {
  77. $owner = $this->getCreatedBy();
  78. return $owner !== null ? [$owner] : [];
  79. }
  80. }