src/Entity/MessageFile.php line 59

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use ApiPlatform\Metadata\ApiResource;
  4. use ApiPlatform\Metadata\Delete;
  5. use ApiPlatform\Metadata\Get;
  6. use ApiPlatform\Metadata\GetCollection;
  7. use ApiPlatform\Metadata\Post;
  8. use ApiPlatform\Metadata\Put;
  9. use App\Controller\Action\MessageFilePostController;
  10. use App\Repository\FileRepository;
  11. use Doctrine\ORM\Mapping as ORM;
  12. use Symfony\Component\Serializer\Annotation\Groups;
  13. #[ORM\Entity(repositoryClassFileRepository::class)]
  14. #[ApiResource(
  15.     operations: [
  16.         new Post(
  17.             uriTemplate'message_files/upload',
  18.             controllerMessageFilePostController::class,
  19.             openapiContext: [
  20.                 'requestBody' => [
  21.                     'content' => [
  22.                         'multipart/form-data' => [
  23.                             'schema' => [
  24.                                 'type' => 'object',
  25.                                 'properties' => [
  26.                                     'type' => [
  27.                                         'type' => 'string',
  28.                                         'format' => 'string'
  29.                                     ],
  30.                                     'name' => [
  31.                                         'type' => 'string',
  32.                                         'format' => 'string'
  33.                                     ],
  34.                                     'size' => [
  35.                                         'type' => 'int',
  36.                                         'format' => 'int'
  37.                                     ],
  38.                                     'file' => [
  39.                                         'type' => 'string',
  40.                                         'format' => 'binary'
  41.                                     ],
  42.                                 ]
  43.                             ]
  44.                         ]
  45.                     ]
  46.                 ]
  47.             ],
  48.             deserializefalse,
  49.             validatefalse,
  50.             name'_api_/message_files/upload'
  51.         ),
  52.     ],
  53.     normalizationContext: ['groups' => ['messageFile.get','message.get']],
  54.     denormalizationContext: ['groups' => ['messageFile.write']]
  55. )]
  56. class MessageFile
  57. {
  58.     #[ORM\Id]
  59.     #[ORM\GeneratedValue]
  60.     #[ORM\Column]
  61.     #[Groups(['messageFile.write','messageFile.get','message.get'])]
  62.     private ?int $id null;
  63.     #[ORM\Column(type"string"length255)]
  64.     #[Groups(['messageFile.write','messageFile.get','message.get'])]
  65.     private string $name;
  66.     #[ORM\Column(type"string"length255)]
  67.     #[Groups(['messageFile.write','messageFile.get'])]
  68.     private string $type;
  69.     #[ORM\Column(type"integer")]
  70.     #[Groups(['messageFile.write','messageFile.get'])]
  71.     private int $size;
  72.     #[ORM\Column(length255nullabletrue)]
  73.     #[Groups(['messageFile.write','messageFile.get'])]
  74.     private ?string $file null;
  75.     #[ORM\Column(length255nullabletrue)]
  76.     #[Groups(['messageFile.write','messageFile.get'])]
  77.     private ?string $path null;
  78.     #[ORM\Column(type"datetime")]
  79.     #[Groups(['messageFile.write','messageFile.get'])]
  80.     private \DateTimeInterface $createdAt;
  81.     #[ORM\ManyToOne(inversedBy'messageFiles')]
  82.     #[Groups(['messageFile.write','messageFile.get'])]
  83.     private ?Message $message null;
  84.     public function __construct(string $namestring $typeint $size)
  85.     {
  86.         $this->name $name;
  87.         $this->type $type;
  88.         $this->size $size;
  89.         $this->createdAt = new \DateTimeImmutable();
  90.     }
  91.     public function getId(): int
  92.     {
  93.         return $this->id;
  94.     }
  95.     public function getName(): string
  96.     {
  97.         return $this->name;
  98.     }
  99.     public function setName(string $name): void
  100.     {
  101.         $this->name $name;
  102.     }
  103.     public function getType(): string
  104.     {
  105.         return $this->type;
  106.     }
  107.     public function setType(string $type): void
  108.     {
  109.         $this->type $type;
  110.     }
  111.     public function getSize(): int
  112.     {
  113.         return $this->size;
  114.     }
  115.     public function setSize(int $size): void
  116.     {
  117.         $this->size $size;
  118.     }
  119.     public function getCreatedAt(): \DateTimeInterface
  120.     {
  121.         return $this->createdAt;
  122.     }
  123.     /**
  124.      * @return string|null
  125.      */
  126.     public function getFile(): ?string
  127.     {
  128.         return $this->file;
  129.     }
  130.     /**
  131.      * @param string|null $file
  132.      */
  133.     public function setFile(?string $file): void
  134.     {
  135.         $this->file $file;
  136.     }
  137.     /**
  138.      * @return string|null
  139.      */
  140.     public function getPath(): ?string
  141.     {
  142.         return $this->path;
  143.     }
  144.     /**
  145.      * @param string|null $path
  146.      */
  147.     public function setPath(?string $path): void
  148.     {
  149.         $this->path $path;
  150.     }
  151.     public function getMessage(): ?Message
  152.     {
  153.         return $this->message;
  154.     }
  155.     public function setMessage(?Message $message): self
  156.     {
  157.         $this->message $message;
  158.         return $this;
  159.     }
  160. }