src/Entity/Details/Participation/DetailsParticipation.php line 51

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Details\Participation;
  3. use ApiPlatform\Core\Annotation\ApiProperty;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Gedmo\Timestampable\Traits\TimestampableEntity;
  7. use Ramsey\Uuid\Doctrine\UuidGenerator;
  8. use Symfony\Component\Serializer\Annotation\Groups;
  9. use Symfony\Component\Serializer\Annotation\SerializedName;
  10. use App\Entity\Participation\Participation;
  11. /**
  12.  * @ApiResource(
  13.  *     attributes={
  14.  *          "normalization_context"={
  15.  *              "groups"={
  16.  *                  "DetailsParticipation:output",
  17.  *                  "DetailsParticipation:io",
  18.  *                  "get_participation_odrs_by_user",
  19.  *                  "get_participation_odrs_by_id",
  20.  *               },
  21.  *          },
  22.  *          "denormalization_context"={
  23.  *              "groups"={
  24.  *                  "DetailsParticipation:output",
  25.  *                  "DetailsParticipation:input",
  26.  *                  "DetailsParticipation:io",
  27.  *                  "get_participation_odrs_by_user",
  28.  *                  "get_participation_odrs_by_id",
  29.  *               },
  30.  *          }
  31.  *      },
  32.  *     collectionOperations={"GET"},
  33.  *     itemOperations={"GET"},
  34.  * )
  35.  *
  36.  * @ORM\Entity()
  37.  * @ORM\InheritanceType("SINGLE_TABLE")
  38.  * @ORM\DiscriminatorColumn(name="discr", type="string")
  39.  * @ORM\DiscriminatorMap({
  40.  *     "details_participation" = "DetailsParticipation",
  41.  *     "details_puntos" = "DetailsParticipationPuntos",
  42.  *     "details_step" = "DetailsParticipationStep",
  43.  *     "details_odr" = "DetailsParticipationOdr",
  44.  *     "details_multi_odr" = "DetailsParticipationMultiOdr",
  45.  * })
  46.  * @ORM\HasLifecycleCallbacks()
  47.  */
  48. class DetailsParticipation
  49. {
  50.     /**
  51.      * Hook timestampable behavior
  52.      * updates createdAt, updatedAt fields
  53.      */
  54.     use TimestampableEntity;
  55.     /**
  56.      * @ORM\Id
  57.      * @ORM\Column(type="uuid", unique=true)
  58.      * @ORM\GeneratedValue(strategy="CUSTOM")
  59.      * @ORM\CustomIdGenerator(class=UuidGenerator::class)
  60.      * @SerializedName("id")
  61.      * @ApiProperty(identifier=true)
  62.      * @Groups({
  63.      *     "DetailsParticipation:output",
  64.      *     "DetailsParticipationStep:output",
  65.      *     "DetailsParticipationPuntos:output",
  66.      *     "DetailsParticipationOdr:output",
  67.      *     "DetailsParticipationMultiOdr:output",
  68.      *     "ParticipationStep:io",
  69.      *     "ParticipationMulti:io",
  70.      *     "get_steps_by_user_department",
  71.      *     "get_participation_odrs_by_user",
  72.      *     "get_participation_odrs_by_id",
  73.      *     "get_participation_multi_odrs_by_user",
  74.      * })
  75.      */
  76.     private string $id;
  77.     /**
  78.      * @var Participation
  79.      * @ORM\OneToOne(targetEntity=Participation::class)
  80.      * @ORM\JoinColumn(name="participation_id", referencedColumnName="id")
  81.      * @Groups({
  82.      *     "DetailsParticipation:output",
  83.      *     "DetailsParticipationStep:output",
  84.      *     "DetailsParticipationPuntos:output",
  85.      *     "DetailsParticipationOdr:output",
  86.      *     "DetailsParticipationMultiOdr:output",
  87.      *     "ParticipationStep:io",
  88.      *     "ParticipationOdr:io",
  89.      *     "get_steps_by_user_department",
  90.      *     "get_participation_odrs_by_user",
  91.      *     "get_participation_odrs_by_id",
  92.      *     "get_participation_multi_odrs_by_user",
  93.      * })
  94.      */
  95.     private $participation;
  96.     /**
  97.      * @ORM\Column(type="float")
  98.      * @SerializedName("amount")
  99.      * @Groups({
  100.      *     "DetailsParticipation:io",
  101.      *     "DetailsParticipationStep:io",
  102.      *     "DetailsParticipationPuntos:io",
  103.      *     "DetailsParticipationOdr:output",
  104.      *     "DetailsParticipationMultiOdr:output",
  105.      *     "ParticipationStep:io",
  106.      *     "ParticipationOdr:io",
  107.      *     "ParticipationPuntos:io",
  108.      *     "get_steps_by_user_department",
  109.      * })
  110.      */
  111.     private ?float $amount;
  112.     /**
  113.      * @return string
  114.      */
  115.     public function getId() : string
  116.     {
  117.         return $this->id;
  118.     }
  119.     /**
  120.      * @return float|null
  121.      */
  122.     public function getAmount() : ?float
  123.     {
  124.         return $this->amount;
  125.     }
  126.     /**
  127.      * @param float|null $amount
  128.      *
  129.      * @return DetailsParticipation
  130.      */
  131.     public function setAmount(?float $amount) : DetailsParticipation
  132.     {
  133.         $this->amount $amount;
  134.         return $this;
  135.     }
  136.     /**
  137.      * @return Participation
  138.      */
  139.     public function getParticipation(): Participation
  140.     {
  141.         return $this->participation;
  142.     }
  143.     /**
  144.      * @param Participation $participation
  145.      * @return DetailsParticipation
  146.      */
  147.     public function setParticipation(Participation $participation): DetailsParticipation
  148.     {
  149.         $this->participation $participation;
  150.         return $this;
  151.     }
  152. }