src/Domain/Entity/LocaleMessage.php line 49

Open in your IDE?
  1. <?php
  2. namespace App\Domain\Entity;
  3. use ApiPlatform\Metadata\ApiResource;
  4. use ApiPlatform\Metadata\Get;
  5. use ApiPlatform\Metadata\GetCollection;
  6. use ApiPlatform\Metadata\Post;
  7. use ApiPlatform\Metadata\Put;
  8. use App\Application\Controller\Api\LocaleMessage\ExportAction;
  9. use App\Application\Controller\Api\LocaleMessage\GenerateAction;
  10. use App\Application\Controller\Api\LocaleMessage\ImportAction;
  11. use App\Domain\Entity\Behavior\Identifiable;
  12. use Gedmo\SoftDeleteable\Traits\SoftDeleteable;
  13. use Gedmo\Timestampable\Traits\Timestampable;
  14. /**
  15.  * Class LocaleMessage
  16.  *
  17.  * @package App\Domain\Entity
  18.  */
  19. #[ApiResource(
  20.     operations            : [
  21.         new GetCollection(filters: ['locale_message.search_filter''soft_delete_filter']),
  22.         new GetCollection(
  23.             uriTemplate         '/locale_messages/export',
  24.             formats             : ['csv' => ['text/csv']],
  25.             controller          ExportAction::class,
  26.             paginationEnabled   false,
  27.             normalizationContext: ['groups' => ['locale_message_export'], 'csv_delimiter' => ';'],
  28.             filters             : ['locale_message.search_filter'],
  29.         ),
  30.         new GetCollection(
  31.             uriTemplate'/locale_messages/generate',
  32.             controller GenerateAction::class
  33.         ),
  34.         new Post(
  35.             uriTemplate'/locale_messages/import',
  36.             controller ImportAction::class,
  37.             deserializefalse,
  38.         ),
  39.         new Get(),
  40.         new Post(),
  41.         new Put(),
  42.     ],
  43.     normalizationContext  : ['groups' => ['locale_message_read']],
  44.     denormalizationContext: ['groups' => ['locale_message_write']]
  45. )]
  46. class LocaleMessage
  47. {
  48.     use Identifiable;
  49.     use SoftDeleteable;
  50.     use Timestampable;
  51.     public function __construct(
  52.         public string $code,
  53.         public ?string $value,
  54.         public ?string $markdown,
  55.         public Locale $locale,
  56.     ) {}
  57. }