src/Domain/Entity/LogUserSearch.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Domain\Entity;
  3. use ApiPlatform\Metadata\ApiResource;
  4. use ApiPlatform\Metadata\Post;
  5. use App\Application\Controller\Api\LogUserSearch\LogUserSearchAction;
  6. use App\Domain\Entity\Behavior\Identifiable;
  7. use Gedmo\Timestampable\Traits\Timestampable;
  8. use Symfony\Component\Serializer\Annotation\Groups;
  9. #[ApiResource(
  10.     operations: [
  11.         new Post(
  12.             uriTemplate'/log_user_search',
  13.             controller LogUserSearchAction::class,
  14.             deserializefalse,
  15.             serialize  false,
  16.         ),
  17.     ],
  18.     normalizationContext: ['groups' => ['log_user_search_read']],
  19.     denormalizationContext: ['groups' => ['log_user_search_write']],
  20. )]
  21. /**
  22.  * Class LogUserSearch
  23.  *
  24.  * @package App\Domain\Entity
  25.  */
  26. class LogUserSearch
  27. {
  28.     use Identifiable;
  29.     use Timestampable;
  30.     public const USER_SEARCH 'user_search';
  31.     #[Groups(['log_user_search_read''log_user_search_write'])]
  32.     public string $search;
  33.     #[Groups(['log_user_search_read''log_user_search_write'])]
  34.     public ?Person $author;
  35.     #[Groups(['log_user_search_read''log_user_search_write'])]
  36.     public ?string $device;
  37.     #[Groups(['log_user_search_read''log_user_search_write'])]
  38.     public ?string $locale;
  39.     #[Groups(['log_user_search_read''log_user_search_write'])]
  40.     public ?string $searchFrom;
  41.     public function __construct(
  42.         string $search,
  43.         ?Person $author null,
  44.         ?string $device null,
  45.         ?string $locale null,
  46.         ?string $searchFrom null
  47.     ) {
  48.         $this->search $search;
  49.         $this->author $author;
  50.         $this->device $device;
  51.         $this->locale $locale;
  52.         $this->searchFrom $searchFrom;
  53.     }
  54. }