src/Entity/ItemUser.php line 40

  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use ApiPlatform\Core\Annotation\ApiSubresource;
  6. use App\Controller\Api\Action\ItemUser\ItemUserGetAction;
  7. use App\Entity\Mapped\Entity;
  8. use App\Repository\ItemUserRepository;
  9. use Doctrine\ORM\Mapping as ORM;
  10. use Symfony\Component\Validator\Constraints as Assert;
  11. #[ORM\Entity(
  12.     repositoryClassItemUserRepository::class
  13. )]
  14. #[ORM\Table(
  15.     name'item_user'
  16. )]
  17. #[ApiResource(
  18.     collectionOperations: [
  19.         'post' => [
  20.             'validation_groups' => [
  21.                 'create'
  22.             ]
  23.         ],
  24.         'get_list' => [
  25.             'controller' => ItemUserGetAction::class,
  26.             'method' => 'GET',
  27.             'path' => '/item/{id}/users'
  28.         ]
  29.     ],
  30.     itemOperations: [
  31.         'get',
  32.         'put',
  33.         'delete',
  34.     ]
  35. )]
  36. class ItemUser extends Entity
  37. {
  38.     #[ORM\ManyToOne(
  39.         targetEntityItem::class,
  40.         cascade: ['persist'],
  41.         inversedBy'users'
  42.     )]
  43.     #[ORM\JoinColumn(
  44.         name'item',
  45.         onDelete'CASCADE'
  46.     )]
  47.     #[Assert\NotBlank(
  48.         groups: ['create']
  49.     )]
  50.     #[ApiSubresource]
  51.     private ?Item $item null;
  52.     #[ORM\ManyToOne(
  53.         targetEntityUser::class,
  54.         cascade: ['persist'],
  55.         inversedBy'itemUser'
  56.     )]
  57.     #[ORM\JoinColumn(
  58.         name'user',
  59.         onDelete'CASCADE'
  60.     )]
  61.     #[Assert\NotBlank(
  62.         groups: ['create']
  63.     )]
  64.     #[ApiSubresource]
  65.     private ?User $user null;
  66.     public function getItem(): ?Item
  67.     {
  68.         return $this->item;
  69.     }
  70.     public function setItem(?Item $item): self
  71.     {
  72.         $this->item $item;
  73.         return $this;
  74.     }
  75.     public function getUser(): ?User
  76.     {
  77.         return $this->user;
  78.     }
  79.     public function setUser(?User $user): self
  80.     {
  81.         $this->user $user;
  82.         return $this;
  83.     }
  84. }