src/Entity/State.php line 56

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use ApiPlatform\Core\Annotation\ApiFilter;
  4. use ApiPlatform\Core\Annotation\ApiProperty;
  5. use ApiPlatform\Core\Annotation\ApiResource;
  6. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
  7. use App\Entity\Operation\Operation;
  8. use App\Entity\Participation\Participation;
  9. use App\Repository\StateRepository;
  10. use Doctrine\Common\Collections\ArrayCollection;
  11. use Doctrine\Common\Collections\Collection;
  12. use Doctrine\ORM\Mapping as ORM;
  13. use Symfony\Component\Serializer\Annotation\Groups;
  14. use Symfony\Component\Serializer\Annotation\SerializedName;
  15. /**
  16.  * @ApiResource(
  17.  *          attributes={
  18.  *           "force_eager"=false,
  19.  *           "normalization_context"={
  20.  *               "groups"={
  21.  *                   "ParticipationMulti:io",
  22.  *                   "ParticipationOdr:io",
  23.  *               },
  24.  *               "enable_max_depth"=true
  25.  *           },
  26.  *           "denormalization_context"={
  27.  *               "groups"={
  28.  *                   "ParticipationMulti:io",
  29.  *                   "ParticipationOdr:io",
  30.  *               },
  31.  *               "enable_max_depth"=true
  32.  *           },
  33.  *       },
  34.  *     collectionOperations={
  35.  *          "get"={
  36.  *              "method"="GET",
  37.  *              "access_control"="is_granted('ROLE_USER')",
  38.  *          },
  39.  *     },
  40.  *     itemOperations={
  41.  *          "get"={
  42.  *              "method"="GET",
  43.  *              "access_control"="is_granted('ROLE_USER')",
  44.  *          },
  45.  *      }
  46.  * )
  47.  * @ApiFilter(SearchFilter::class, properties={"label": "exact"})
  48.  * @ORM\Entity(repositoryClass=StateRepository::class)
  49.  * @ORM\Table(name="state",indexes={
  50.  *     @ORM\Index(name="search_idx", columns={"label"})
  51.  * })
  52.  */
  53. class State
  54. {
  55.     public const OPERATION_PROGRESS 'operation_progress';
  56.     public const OPERATION_PENDING 'operation_pending';
  57.     public const OPERATION_VALIDATED 'operation_validated';
  58.     public const OPERATION_STATE_LIST = [
  59.         self::OPERATION_PROGRESS,
  60.         self::OPERATION_PENDING,
  61.         self::OPERATION_VALIDATED,
  62.     ];
  63.     public const PARTICIPATION_PARTIAL 'participation_partial';
  64.     public const PARTICIPATION_PROGRESS 'participation_progress';
  65.     public const PARTICIPATION_CONFORMED 'participation_conformed';
  66.     public const PARTICIPATION_UNCONFORMED_DEF 'participation_unconformed_def';
  67.     public const PARTICIPATION_UNCONFORMED_TEMP 'participation_unconformed_temp';
  68.     public const PARTICIPATION_VALIDATED 'participation_validated';
  69.     public const PARTICIPATION_EDITED 'participation_edited';
  70.     public const PARTICIPATION_REFUNDED 'participation_refunded';
  71.     public const PARTICIPATION_STATE_LIST = [
  72.         self::PARTICIPATION_PROGRESS,
  73.         self::PARTICIPATION_CONFORMED,
  74.         self::PARTICIPATION_UNCONFORMED_DEF,
  75.         self::PARTICIPATION_UNCONFORMED_TEMP,
  76.         self::PARTICIPATION_VALIDATED,
  77.         self::PARTICIPATION_EDITED,
  78.         self::PARTICIPATION_REFUNDED
  79.     ];
  80.     /**
  81.      * @ApiProperty(identifier=true)
  82.      * @ORM\Id
  83.      * @ORM\GeneratedValue
  84.      * @ORM\Column(type="integer")
  85.      * @SerializedName("id")
  86.      * @Groups({
  87.      *     "ParticipationStep:io",
  88.      *     "ParticipationOdr:io",
  89.      *     "ParticipationMulti:io",
  90.      * })
  91.      */
  92.     private string $id;
  93.     /**
  94.      * @ORM\Column(type="string", length=255)
  95.      * @SerializedName("label")
  96.      * @Groups({
  97.      *     "ParticipationStep:io",
  98.      *     "ParticipationPuntos:io",
  99.      *     "ParticipationOdr:io",
  100.      *     "ParticipationMulti:io",
  101.      * })
  102.      */
  103.     private string $label;
  104.     /**
  105.      * @ORM\OneToMany(targetEntity=Participation::class, mappedBy="state")
  106.      * @SerializedName("participations")
  107.      * @Groups({"State:io"})
  108.      */
  109.     private Collection $participations;
  110.     /**
  111.      * @ORM\OneToMany(targetEntity=Operation::class, mappedBy="state")
  112.      * @SerializedName("participations")
  113.      * @Groups({"State:io"})
  114.      */
  115.     private Collection $operations;
  116.     public function __construct()
  117.     {
  118.         $this->participations = new ArrayCollection();
  119.         $this->operations = new ArrayCollection();
  120.     }
  121.     public function getId(): ?int
  122.     {
  123.         return $this->id;
  124.     }
  125.     public function getLabel(): ?string
  126.     {
  127.         return $this->label;
  128.     }
  129.     public function setLabel(string $label): self
  130.     {
  131.         $this->label $label;
  132.         return $this;
  133.     }
  134.     public function getParticipations(): ?Collection
  135.     {
  136.         return $this->participations;
  137.     }
  138.     public function setParticipations(Collection $participations): self
  139.     {
  140.         $this->participations $participations;
  141.         return $this;
  142.     }
  143.     public function __toString()
  144.     {
  145.         return $this->label;
  146.     }
  147. }