src/Entity/Sesion.php line 63
<?phpnamespace App\Entity;use Symfony\Component\Serializer\Annotation\Groups;use Ramsey\Uuid\Uuid;use Doctrine\ORM\Mapping as ORM;use Doctrine\DBAL\Types\Types;use Doctrine\Common\Collections\Collection;use Doctrine\Common\Collections\ArrayCollection;use App\Trait\UuidTrait;use App\Trait\TimestampableTrait;use App\Trait\BlameableTrait;use App\State\SesionStateProcessor;use App\State\SesionStateDeleteProcessor;use App\Repository\SesionRepository;use App\Entity\User;use App\Entity\Muestra;use App\Controller\InformesController;use App\Controller\CalculosSesionController;use ApiPlatform\Metadata\Put;use ApiPlatform\Metadata\Post;use ApiPlatform\Metadata\Patch;use ApiPlatform\Metadata\GetCollection;use ApiPlatform\Metadata\Get;use ApiPlatform\Metadata\Delete;use ApiPlatform\Metadata\ApiResource;use ApiPlatform\Metadata\ApiFilter;use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;use ApiPlatform\Doctrine\Orm\Filter\OrderFilter;ini_set('memory_limit', '-1');#[ORM\Entity(repositoryClass: SesionRepository::class)]#[ApiResource(operations: [new GetCollection(uriTemplate: 'sesiones', normalizationContext: ['groups' => ['sesionCollection:read']]),new Post(uriTemplate: 'sesiones', validationContext: ['groups' => ['Default', 'sesion:create']], denormalizationContext: ['groups' => ['sesion:create']], processor: SesionStateProcessor::class),new Get(uriTemplate: 'sesiones/{uuid}'),new Get(uriTemplate: 'sesiones/{uuid}/calculo', controller: CalculosSesionController::class, security: "is_granted('ROLE_ADMIN')"),new Put(uriTemplate: 'sesiones/{uuid}', denormalizationContext: ['groups' => ['sesion:update']], processor: SesionStateProcessor::class),new Patch(uriTemplate: 'sesiones/{uuid}', denormalizationContext: ['groups' => ['sesion:update']], processor: SesionStateProcessor::class),new Delete(uriTemplate: 'sesiones/{uuid}', processor: SesionStateDeleteProcessor::class),],normalizationContext: ['groups' => ['sesion:read', 'uuid']],)]#[ApiFilter(SearchFilter::class,properties: ['nombre' => 'exact','codigo' => 'exact','estado' => 'exact',])]#[ApiFilter(OrderFilter::class,properties: ['nombre','estado','fecha',])]class Sesion{public const ESTADO_INICIADA = 'iniciada';public const ESTADO_VALIDADA = 'validada';public const ESTADO_CALCULADA = 'calculada';public const ESTADO_FINALIZADA = 'finalizada';public const ESTADO_CANCELADA = 'cancelada';public const ESTADO_PENDIENTE = 'pendiente';public const MODULO = 'sesiones';use TimestampableTrait;use BlameableTrait;use UuidTrait;#[Groups(['sesion:read', 'sesion:create', 'sesion:update', 'sesionCollection:read'])]#[ORM\Column(length: 255, nullable: true)]private ?string $nombre = null;#[Groups(['sesion:read', 'sesion:create', 'sesion:update'])]#[ORM\Column(length: 255, nullable: true)]private ?string $descripcion = null;#[Groups(['sesion:read', 'sesion:create', 'sesion:update', 'sesionCollection:read'])]#[ORM\Column(length: 255, nullable: true)]private ?string $codigo = null;#[Groups(['sesion:read', 'sesion:create', 'sesion:update'])]#[ORM\Column(length: 255, nullable: true)]private ?string $temperatura = null;#[Groups(['sesion:read', 'sesion:create', 'sesion:update', 'sesionCollection:read'])]#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]private ?\DateTimeInterface $fecha = null;#[Groups(['sesion:read', 'sesion:create', 'sesion:update'])]#[ORM\ManyToMany(targetEntity: User::class)]private Collection $evaluadores;#[Groups(['sesion:read'])]#[ORM\ManyToOne]#[ORM\JoinColumn(nullable: false)]private ?Empresa $empresa = null;#[Groups(['sesion:read', 'sesion:create', 'sesion:update', 'sesionCollection:read'])]#[ORM\Column(length: 255, nullable: true)]private ?string $estado = null;#[Groups(['sesion:create', 'sesion:update'])]#[ORM\OneToMany(mappedBy: 'sesion', targetEntity: SesionesValores::class, orphanRemoval: true, cascade: ['persist', 'remove'])]private Collection $sesionesValores;#[Groups(['sesion:read', 'sesionCollection:read'])]#[ORM\Column(nullable: true)]private ?array $control = [];#[Groups(['sesion:update'])]private ?array $evaluacion = [];#[Groups(['sesion:read', 'sesion:create', 'sesion:update'])]#[ORM\Column(nullable: true)]private ?array $organizacion = [];#[Groups(['sesion:read', 'sesion:create', 'sesion:update'])]#[ORM\Column(nullable: true)]private array $parametrosMuestra = [];#[Groups(['sesion:read', 'sesion:create', 'sesion:update'])]#[ORM\OneToMany(mappedBy: 'sesion', targetEntity: Muestra::class, cascade: ['persist'])]private Collection $muestras;#[ORM\Column(type: Types::TIME_MUTABLE, nullable: true)]#[Groups(['sesion:read', 'sesion:create', 'sesion:update', 'sesionCollection:read'])]private ?\DateTimeInterface $horaFin = null;public function __construct(){$this->evaluadores = new ArrayCollection();$this->sesionesValores = new ArrayCollection();$this->uuid = Uuid::uuid4()->toString();$this->muestras = new ArrayCollection();}public function getId(): ?string{return $this->id;}public function getNombre(): ?string{return $this->nombre;}public function setNombre(?string $nombre): self{$this->nombre = $nombre;return $this;}public function getDescripcion(): ?string{return $this->descripcion;}public function setDescripcion(?string $descripcion): self{$this->descripcion = $descripcion;return $this;}public function getCodigo(): ?string{return $this->codigo;}public function setCodigo(?string $codigo): self{$this->codigo = $codigo;return $this;}public function getTemperatura(): ?string{return $this->temperatura;}public function setTemperatura(?string $temperatura): self{$this->temperatura = $temperatura;return $this;}public function getFecha(): ?\DateTimeInterface{return $this->fecha;}public function setFecha(?\DateTimeInterface $fecha): self{$this->fecha = $fecha;return $this;}/*** @return Collection<int, User>*/public function getEvaluadores(): Collection{return $this->evaluadores;}public function addEvaluadore(User $evaluadore): self{if (!$this->evaluadores->contains($evaluadore)) {$this->evaluadores->add($evaluadore);}return $this;}public function removeEvaluadore(User $evaluadore): self{$this->evaluadores->removeElement($evaluadore);return $this;}public function getEmpresa(): ?Empresa{return $this->empresa;}public function setEmpresa(?Empresa $empresa): self{$this->empresa = $empresa;return $this;}public function getEstado(): ?string{return $this->estado;}public function setEstado(?string $estado): self{$this->estado = $estado;return $this;}/*** @return Collection<int, SesionesValores>*/public function getSesionesValores(): Collection{return $this->sesionesValores;}public function addSesionesValores(SesionesValores $sesionesValore): self{if (!$this->sesionesValores->contains($sesionesValore)) {$this->sesionesValores->add($sesionesValore);$sesionesValore->setSesion($this);}return $this;}public function removeSesionesValores(SesionesValores $sesionesValore): self{if ($this->sesionesValores->removeElement($sesionesValore)) {// set the owning side to null (unless already changed)if ($sesionesValore->getSesion() === $this) {$sesionesValore->setSesion(null);}}return $this;}public function getControl(): ?array{return $this->control;}public function setControl(?array $control): self{$this->control = $control;return $this;}public function getEvaluacion(): ?array{return $this->evaluacion;}public function setEvaluacion(?array $evaluacion): self{$this->evaluacion = $evaluacion;return $this;}public function getOrganizacion(): ?array{return $this->organizacion;}public function setOrganizacion(?array $organizacion): self{$this->organizacion = $organizacion;return $this;}public function getParametrosMuestra(): array{return $this->parametrosMuestra;}public function setParametrosMuestra(?array $parametrosMuestra): self{$this->parametrosMuestra = $parametrosMuestra;return $this;}/*** @return Collection<int, Muestra>*/public function getMuestras(): Collection{return $this->muestras;}public function addMuestra(Muestra $muestra): static{if (!$this->muestras->contains($muestra)) {$this->muestras->add($muestra);$muestra->setSesion($this);}return $this;}public function removeMuestra(Muestra $muestra): static{if ($this->muestras->removeElement($muestra)) {// set the owning side to null (unless already changed)if ($muestra->getSesion() === $this) {$muestra->setSesion(null);}}return $this;}public function getHoraFin(): ?\DateTimeInterface{return $this->horaFin;}public function setHoraFin(?\DateTimeInterface $horaFin): static{$this->horaFin = $horaFin;return $this;}}