src/Domain/Entity/PressRelease.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\Domain\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\Domain\Entity\Behavior\Identifiable;
  10. use App\Domain\Entity\Enumeration\MediaType;
  11. use DateTime;
  12. use Gedmo\SoftDeleteable\Traits\SoftDeleteable;
  13. use Gedmo\Timestampable\Traits\Timestampable;
  14. /**
  15.  * Class PressKit
  16.  *
  17.  * @package App\Domain\Entity
  18.  */
  19. #[ApiResource(
  20.     operations            : [
  21.         new Delete(security"is_granted('ROLE_ADMIN')"),
  22.         new Get(),
  23.         new GetCollection(filters: ['press.search_filter''soft_delete_filter''press.order_filter']),
  24.         new Post(security"is_granted('ROLE_ADMIN')"),
  25.         new Put(security"is_granted('ROLE_ADMIN')"),
  26.     ],
  27.     normalizationContext  : ['groups' => ['press_release_read']],
  28.     denormalizationContext: ['groups' => ['press_release_write']]
  29. )]
  30. class PressRelease
  31. {
  32.     use Identifiable;
  33.     use SoftDeleteable;
  34.     use Timestampable;
  35.     /**
  36.      * @param Locale         $locale
  37.      * @param string|null    $extract
  38.      * @param string|null    $link
  39.      * @param Media|null     $logo
  40.      * @param MediaType|null $mediaType
  41.      * @param Media|null     $pdf
  42.      * @param DateTime|null  $publicationDate
  43.      * @param string|null    $title
  44.      */
  45.     public function __construct(
  46.         public Locale $locale,
  47.         public ?string $extract null,
  48.         public ?string $link null,
  49.         public ?Media $logo null,
  50.         public ?MediaType $mediaType null,
  51.         public ?Media $pdf null,
  52.         public ?DateTime $publicationDate null,
  53.         public ?string $title null,
  54.     ) {}
  55.     public function getFormattedPublicationDate(): string
  56.     {
  57.         return $this->publicationDate->format('d l Y');
  58.     }
  59. }