src/Entity/Document.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use ApiPlatform\Core\Annotation\ApiResource;
  4. use App\Utils\Config;
  5. use App\Repository\DocumentRepository;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Gedmo\Timestampable\Traits\TimestampableEntity;
  8. use Symfony\Component\Serializer\Annotation\Groups;
  9. #[ORM\Entity(repositoryClassDocumentRepository::class)]
  10. #[ApiResource(
  11.     collectionOperations: [
  12.         'get' => [
  13.             'normalization_context' => [
  14.                 'groups' => 'read:document:collection:get',
  15.             ],
  16.         ],
  17.     ],
  18.     itemOperations: [
  19.         'get' => [
  20.             'normalization_context' => [
  21.                 'groups' => 'read:document:item:get',
  22.             ],
  23.         ],
  24.     ]
  25. )]
  26. class
  27. Document
  28. {
  29.     #[ORM\Id]
  30.     #[ORM\GeneratedValue]
  31.     #[ORM\Column()]
  32.     #[Groups([
  33.         'read:document:collection:get',
  34.         'read:document:item:get',
  35.         'read:photo:collection:get',
  36.         'read:photo:item:get',
  37.         'read:outfit:collection:get',
  38.         'read:outfit:item:get',
  39.     ])]
  40.     private ?int $id null;
  41.     use TimestampableEntity;
  42.     #[ORM\Column(length255nullabletrue)]
  43.     private ?string $filepath null;
  44.     #[ORM\Column(length255nullabletrue)]
  45.     private ?string $imageType null;
  46.     #[ORM\Column(length255)]
  47.     private ?string $filename null;
  48.     public function __construct()
  49.     {
  50.     }
  51.     public function getAbsolutePath(): string
  52.     {
  53.         $absoluteDocumentDir Config::getAbsoluteDocumentDir();
  54.         $path = !empty($this->filepath) ? '/'.$this->filepath '';
  55.         return $absoluteDocumentDir.$path.'/'.$this->filename;
  56.     }
  57.     #[Groups([
  58.         'read:document:collection:get',
  59.         'read:document:item:get',
  60.         'read:photo:collection:get',
  61.         'read:photo:item:get',
  62.         'read:outfit:collection:get',
  63.         'read:outfit:item:get',
  64.         'read:photo:collection:post',
  65.     ])]
  66.     public function getUrl(): string
  67.     {
  68.         $documentUrl Config::getDocumentUrl();
  69.         $path = !empty($this->filepath) ? '/'.$this->filepath '';
  70.         return $documentUrl.$path.'/'.$this->filename;
  71.     }
  72.     public function getId(): ?int
  73.     {
  74.         return $this->id;
  75.     }
  76.     public function getFilepath(): ?string
  77.     {
  78.         return $this->filepath;
  79.     }
  80.     public function setFilepath(?string $filepath): self
  81.     {
  82.         $this->filepath $filepath;
  83.         return $this;
  84.     }
  85.     public function getImageType(): ?string
  86.     {
  87.         return $this->imageType;
  88.     }
  89.     public function setImageType(?string $imageType): self
  90.     {
  91.         $this->imageType $imageType;
  92.         return $this;
  93.     }
  94.     public function getFilename(): ?string
  95.     {
  96.         return $this->filename;
  97.     }
  98.     public function setFilename(string $filename): self
  99.     {
  100.         $this->filename $filename;
  101.         return $this;
  102.     }
  103. }