src/Entity/JournalNotificationQueue.php line 37

  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Serializer\Annotation\Groups;
  5. use ApiPlatform\Metadata\ApiResource,
  6.     ApiPlatform\Metadata\ApiProperty,
  7.     ApiPlatform\Metadata\Get,
  8.     ApiPlatform\Metadata\GetCollection,
  9.     ApiPlatform\Metadata\ApiFilter,
  10.     ApiPlatform\Doctrine\Orm\Filter\OrderFilter;
  11. use App\Entity\Trait\IdTrait,
  12.     App\Entity\Trait\UuidTrait,
  13.     App\Entity\Trait\TimestampableTrait;
  14. use App\Filter\IriFilter;
  15. use App\Repository\JournalNotificationQueueRepository;
  16. #[ApiResource(
  17.     description'Journal notification queues',
  18.     normalizationContext: ['groups' => ['read''read:' self::class ]],
  19.     denormalizationContext: ['groups' => ['write']],
  20.     security'is_granted("' Journal::class . '")',
  21.     order: ['createdAt' => 'asc'],
  22.     operations: [
  23.         new GetCollection(),
  24.         new Get(),
  25.     ],
  26.     extraProperties: ['standard_put' => false],
  27. )]
  28. #[ApiFilter(IriFilter::class, properties: ['issue'])]
  29. #[ApiFilter(OrderFilter::class, properties: ['createdAt'])]
  30. #[ORM\Entity(repositoryClassJournalNotificationQueueRepository::class)]
  31. class JournalNotificationQueue
  32. {
  33.     use IdTrait,
  34.         UuidTrait,
  35.         TimestampableTrait;
  36.     #[ApiProperty(description'Issue'writableLinkfalse)]
  37.     #[Groups(['read'])]
  38.     #[ORM\ManyToOne(targetEntityJournalIssue::class)]
  39.     #[ORM\JoinColumn(onDelete'cascade'nullablefalse)]
  40.     private JournalIssue $issue;
  41.     public function __construct(JournalIssue $issue)
  42.     {
  43.         $this->setUuid();
  44.         $this->issue $issue;
  45.         $this->createdAt = new \DateTimeImmutable();
  46.         $this->updatedAt = new \DateTimeImmutable();
  47.     }
  48.     public function getIssue(): JournalIssue
  49.     {
  50.         return $this->issue;
  51.     }
  52. }