src/Entity/Common/File.php line 39

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Common;
  3. use App\Entity\Account\User;
  4. use App\Entity\Channel\Export\FileExport;
  5. use App\Entity\Channel\FileOrganization;
  6. use App\Entity\Channel\PositioningTest\FileQuestion;
  7. use App\Entity\ChannelUserData\AdminChannelUserData\AdminDriveFile;
  8. use App\Entity\ChannelUserData\AdminChannelUserData\Document\AdminChannelUserDataAgreement;
  9. use App\Entity\ChannelUserData\AdminChannelUserData\Document\AdminChannelUserDataCertificate;
  10. use App\Entity\ChannelUserData\AdminChannelUserData\Document\AdminChannelUserDataDocument;
  11. use App\Entity\ChannelUserData\Cursus\FileAbstractCursus;
  12. use App\Repository\Common\FileRepository;
  13. use Doctrine\ORM\Mapping as ORM;
  14. use DrosalysWeb\ObjectExtensions\Blame\Model\BlameInterface;
  15. use DrosalysWeb\ObjectExtensions\Blame\Model\BlameTrait;
  16. use DrosalysWeb\ObjectExtensions\Timestamp\Model\TimestampInterface;
  17. use DrosalysWeb\ObjectExtensions\Timestamp\Model\TimestampTrait;
  18. use Nellapp\Bundle\SDKBundle\Uploader\Model\NellappFileInterface;
  19. use Symfony\Component\Serializer\Annotation as Serial;
  20. use Symfony\Component\Validator\Constraints\Length;
  21. use Symfony\Component\Validator\Constraints\NotBlank;
  22. #[
  23. ORM\Entity(repositoryClass: FileRepository::class),
  24. ORM\InheritanceType('JOINED'),
  25. ORM\DiscriminatorColumn(name: 'dtype', type: 'string'),
  26. ORM\DiscriminatorMap([
  27. 'cursus-file' => FileAbstractCursus::class,
  28. 'organization-file' => FileOrganization::class,
  29. 'positioning-test-question-file' => FileQuestion::class,
  30. 'export-file' => FileExport::class,
  31. 'admin-drive-file' => AdminDriveFile::class,
  32. 'admin-agreement-file' => AdminChannelUserDataAgreement::class,
  33. 'admin-certificate-file' => AdminChannelUserDataCertificate::class,
  34. ]),
  35. ]
  36. abstract class File implements BlameInterface, TimestampInterface, NellappFileInterface
  37. {
  38. use BlameTrait;
  39. use TimestampTrait;
  40. #[Serial\Groups(['Manager'])]
  41. #[ORM\ManyToOne(targetEntity: User::class)]
  42. #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
  43. protected $createdBy = null;
  44. #[Serial\Groups(['Manager'])]
  45. #[ORM\ManyToOne(targetEntity: User::class)]
  46. #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
  47. protected $updatedBy = null;
  48. #[Serial\Groups(['Manager'])]
  49. protected $createdAt = null;
  50. #[Serial\Groups(['Manager'])]
  51. protected $updatedAt = null;
  52. #[ORM\Id]
  53. #[ORM\GeneratedValue]
  54. #[ORM\Column(type: 'integer')]
  55. #[Serial\Groups(['Manager'])]
  56. private ?int $id = null;
  57. #[Serial\Groups(['PostFile', 'PutFile'])]
  58. private bool $pendingCopy = false;
  59. #[ORM\Column(type: 'string', nullable: false)]
  60. #[
  61. NotBlank(groups: ['PostFile', 'PutFile']),
  62. Length(max: 255, groups: ['PostFile', 'PutFile'])
  63. ]
  64. #[Serial\Groups(['PostFile', 'PutFile', 'Manager'])]
  65. private ?string $originalFilename = null;
  66. #[ORM\Column(type: 'string', nullable: false)]
  67. #[Serial\Groups(['PostFile', 'PutFile'])]
  68. private ?string $path = null;
  69. #[ORM\Column(type: 'string', nullable: false)]
  70. #[NotBlank(groups: ['PostFile'])]
  71. #[Serial\Groups(['PostFile'])]
  72. private ?string $filename = null;
  73. #[ORM\Column(type: 'string', nullable: true)]
  74. #[Serial\Groups(['PostFile', 'PutFile', 'Manager'])]
  75. private ?string $ext = null;
  76. #[ORM\Column(type: 'string', nullable: true)]
  77. #[Serial\Groups(['PostFile', 'PutFile', 'Manager'])]
  78. private ?string $mimeType = null;
  79. #[ORM\Column(type: 'integer', nullable: true)]
  80. #[Serial\Groups(['PostFile', 'PutFile', 'Manager'])]
  81. private ?int $size = null;
  82. public function getOriginalFilenameWithoutExtension(): string
  83. {
  84. return $this->getOriginalFilename();
  85. }
  86. public function getId(): ?int
  87. {
  88. return $this->id;
  89. }
  90. public function isPendingCopy(): bool
  91. {
  92. return $this->pendingCopy;
  93. }
  94. public function setPendingCopy(bool $pendingCopy): static
  95. {
  96. $this->pendingCopy = $pendingCopy;
  97. return $this;
  98. }
  99. public function getOriginalFilename(): ?string
  100. {
  101. return $this->originalFilename;
  102. }
  103. public function setOriginalFilename(?string $originalFilename): static
  104. {
  105. $this->originalFilename = $originalFilename;
  106. return $this;
  107. }
  108. public function getPath(): ?string
  109. {
  110. return $this->path;
  111. }
  112. public function setPath(?string $path): static
  113. {
  114. $this->path = $path;
  115. return $this;
  116. }
  117. public function getFilename(): ?string
  118. {
  119. return $this->filename;
  120. }
  121. public function setFilename(?string $filename): static
  122. {
  123. $this->filename = $filename;
  124. return $this;
  125. }
  126. public function getExt(): ?string
  127. {
  128. return $this->ext;
  129. }
  130. public function setExt(?string $ext): static
  131. {
  132. $this->ext = $ext;
  133. return $this;
  134. }
  135. public function getMimeType(): ?string
  136. {
  137. return $this->mimeType;
  138. }
  139. public function setMimeType(?string $mimeType): static
  140. {
  141. $this->mimeType = $mimeType;
  142. return $this;
  143. }
  144. public function getSize(): ?int
  145. {
  146. return $this->size;
  147. }
  148. public function setSize(?int $size): static
  149. {
  150. $this->size = $size;
  151. return $this;
  152. }
  153. }