src/Entity/Operation/Step.php line 49

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Operation;
  3. use ApiPlatform\Core\Annotation\ApiResource;
  4. use App\Controller\Api\Operation\Step\GetAllPublicSteps;
  5. use App\Controller\Api\Operation\Step\GetStepsByUserDepartment;
  6. use App\Entity\Details\Operation\DetailsStep;
  7. use App\Repository\Operation\StepRepository;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Symfony\Component\Serializer\Annotation\Groups;
  10. use Symfony\Component\Serializer\Annotation\SerializedName;
  11. /**
  12.  * @ORM\Entity(repositoryClass=StepRepository::class)
  13.  * @ApiResource(
  14.  *     attributes={
  15.  *          "normalization_context"={"groups"={
  16.  *              "OperationStep:output",
  17.  *              "OperationStep:io",
  18.  *              "get_all_public_steps",
  19.  *              "get_steps_by_user_department",
  20.  *          }},
  21.  *          "denormalization_context"={"groups"={
  22.  *              "OperationStep:input",
  23.  *              "OperationStep:io"
  24.  *          }}
  25.  *      },
  26.  *     collectionOperations={
  27.  *          "public-get"={
  28.  *              "method"="GET",
  29.  *              "path"="/public/steps",
  30.  *              "access_control"="is_granted('ROLE_PUBLIC')",
  31.  *              "validation_groups"={"get_all_public_steps"},
  32.  *              "controller"=GetAllPublicSteps::class,
  33.  *              "defaults"={"_api_receive"=false},
  34.  *          },
  35.  *          "get-by-user-department"={
  36.  *              "method"="GET",
  37.  *              "path"="/steps",
  38.  *              "access_control"="is_granted('ROLE_USER')",
  39.  *              "validation_groups"={"get_steps_by_user_department"},
  40.  *              "controller"=GetStepsByUserDepartment::class,
  41.  *              "defaults"={"_api_receive"=false},
  42.  *          },
  43.  *     },
  44.  * )
  45.  */
  46. class Step extends Operation
  47. {
  48.     /**
  49.      * @ORM\OneToOne(targetEntity=DetailsStep::class, mappedBy="operation", cascade={"persist", "remove"})
  50.      * @SerializedName("details_step")
  51.      * @Groups({
  52.      *     "OperationStep:io",
  53.      *     "get_all_public_steps",
  54.      * })
  55.      */
  56.     private ?DetailsStep $details;
  57.     public function getDetails(): ?DetailsStep
  58.     {
  59.         return $this->details;
  60.     }
  61.     public function setDetails(?DetailsStep $details): self
  62.     {
  63.         $this->details $details;
  64.         return $this;
  65.     }
  66. }