<?php
namespace App\Entity\Details\Participation;
use ApiPlatform\Core\Annotation\ApiProperty;
use ApiPlatform\Core\Annotation\ApiResource;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Timestampable\Traits\TimestampableEntity;
use Ramsey\Uuid\Doctrine\UuidGenerator;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Serializer\Annotation\SerializedName;
use App\Entity\Participation\Participation;
/**
* @ApiResource(
* attributes={
* "normalization_context"={
* "groups"={
* "DetailsParticipation:output",
* "DetailsParticipation:io",
* "get_participation_odrs_by_user",
* "get_participation_odrs_by_id",
* },
* },
* "denormalization_context"={
* "groups"={
* "DetailsParticipation:output",
* "DetailsParticipation:input",
* "DetailsParticipation:io",
* "get_participation_odrs_by_user",
* "get_participation_odrs_by_id",
* },
* }
* },
* collectionOperations={"GET"},
* itemOperations={"GET"},
* )
*
* @ORM\Entity()
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({
* "details_participation" = "DetailsParticipation",
* "details_puntos" = "DetailsParticipationPuntos",
* "details_step" = "DetailsParticipationStep",
* "details_odr" = "DetailsParticipationOdr",
* "details_multi_odr" = "DetailsParticipationMultiOdr",
* })
* @ORM\HasLifecycleCallbacks()
*/
class DetailsParticipation
{
/**
* Hook timestampable behavior
* updates createdAt, updatedAt fields
*/
use TimestampableEntity;
/**
* @ORM\Id
* @ORM\Column(type="uuid", unique=true)
* @ORM\GeneratedValue(strategy="CUSTOM")
* @ORM\CustomIdGenerator(class=UuidGenerator::class)
* @SerializedName("id")
* @ApiProperty(identifier=true)
* @Groups({
* "DetailsParticipation:output",
* "DetailsParticipationStep:output",
* "DetailsParticipationPuntos:output",
* "DetailsParticipationOdr:output",
* "DetailsParticipationMultiOdr:output",
* "ParticipationStep:io",
* "ParticipationMulti:io",
* "get_steps_by_user_department",
* "get_participation_odrs_by_user",
* "get_participation_odrs_by_id",
* "get_participation_multi_odrs_by_user",
* })
*/
private string $id;
/**
* @var Participation
* @ORM\OneToOne(targetEntity=Participation::class)
* @ORM\JoinColumn(name="participation_id", referencedColumnName="id")
* @Groups({
* "DetailsParticipation:output",
* "DetailsParticipationStep:output",
* "DetailsParticipationPuntos:output",
* "DetailsParticipationOdr:output",
* "DetailsParticipationMultiOdr:output",
* "ParticipationStep:io",
* "ParticipationOdr:io",
* "get_steps_by_user_department",
* "get_participation_odrs_by_user",
* "get_participation_odrs_by_id",
* "get_participation_multi_odrs_by_user",
* })
*/
private $participation;
/**
* @ORM\Column(type="float")
* @SerializedName("amount")
* @Groups({
* "DetailsParticipation:io",
* "DetailsParticipationStep:io",
* "DetailsParticipationPuntos:io",
* "DetailsParticipationOdr:output",
* "DetailsParticipationMultiOdr:output",
* "ParticipationStep:io",
* "ParticipationOdr:io",
* "ParticipationPuntos:io",
* "get_steps_by_user_department",
* })
*/
private ?float $amount;
/**
* @return string
*/
public function getId() : string
{
return $this->id;
}
/**
* @return float|null
*/
public function getAmount() : ?float
{
return $this->amount;
}
/**
* @param float|null $amount
*
* @return DetailsParticipation
*/
public function setAmount(?float $amount) : DetailsParticipation
{
$this->amount = $amount;
return $this;
}
/**
* @return Participation
*/
public function getParticipation(): Participation
{
return $this->participation;
}
/**
* @param Participation $participation
* @return DetailsParticipation
*/
public function setParticipation(Participation $participation): DetailsParticipation
{
$this->participation = $participation;
return $this;
}
}