src/Entity/FormAnswer.php line 25

  1. <?php
  2. namespace App\Entity;
  3. use ApiPlatform\Metadata\ApiResource;
  4. use App\Repository\FormAnswerRepository;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\DBAL\Types\Types;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Symfony\Component\Serializer\Annotation\Groups;
  10. use ApiPlatform\Metadata\ApiFilter;
  11. use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
  12. #[ORM\Entity(repositoryClassFormAnswerRepository::class)]
  13. #[ApiResource(
  14.     normalizationContext: ['groups' => ['formAnswer:read']],
  15.     denormalizationContext: ['groups' => ['formAnswer:write']],
  16.     order: ['id' => 'DESC']
  17. )]
  18. #[ApiFilter(SearchFilter::class, properties: [
  19.     'form.id' => 'exact'
  20.     'form.name' => 'partial' 
  21. ])]
  22. class FormAnswer
  23. {
  24.     #[ORM\Id]
  25.     #[ORM\GeneratedValue]
  26.     #[ORM\Column]
  27.     #[Groups(['formAnswer:read''formAnswer:write''form:read''form:write'])]
  28.     private ?int $id null;
  29.     #[ORM\ManyToOne(inversedBy'formAnswers')]
  30.     #[Groups(['formAnswer:read''formAnswer:write'])]
  31.     private ?Form $form null;
  32.     #[ORM\OneToMany(mappedBy'formAnswer'targetEntityMediaObject::class)]
  33.     #[Groups(['formAnswer:read''formAnswer:write''form:read''form:write'])]
  34.     private Collection $media;
  35.     #[ORM\Column(typeTypes::DATETIME_MUTABLE)]
  36.     #[Groups(['formAnswer:read''formAnswer:write''form:read''form:write'])]
  37.     private ?\DateTimeInterface $dateEntered null;
  38.     #[ORM\Column(nullabletrue)]
  39.     #[Groups(['formAnswer:read''formAnswer:write''form:read''form:write'])]
  40.     private ?bool $view null;
  41.     #[ORM\OneToMany(mappedBy'form_answer'targetEntityFormAnswerFields::class, cascade:['persist''remove'])]
  42.     #[Groups(['formAnswer:read''formAnswer:write''form:read''form:write'])]
  43.     private Collection $formAnswerFields;
  44.     #[ORM\Column(length100nullabletrue)]
  45.     #[Groups(['formAnswer:read''formAnswer:write''form:read''form:write'])]
  46.     private ?string $status null;
  47.     #[ORM\Column(typeTypes::TEXTnullabletrue)]
  48.     #[Groups(['formAnswer:read''formAnswer:write''form:read''form:write'])]
  49.     private ?string $description null;
  50.     #[ORM\Column(nullabletrue)]
  51.     #[Groups(['formAnswer:read''formAnswer:write''form:read''form:write'])]
  52.     private ?array $data null;
  53.     public function __construct()
  54.     {
  55.         $this->media = new ArrayCollection();
  56.         $this->formAnswerFields = new ArrayCollection();
  57.     }
  58.     public function getId(): ?int
  59.     {
  60.         return $this->id;
  61.     }
  62.     public function getForm(): ?Form
  63.     {
  64.         return $this->form;
  65.     }
  66.     public function setForm(?Form $form): self
  67.     {
  68.         $this->form $form;
  69.         return $this;
  70.     }
  71.     /**
  72.      * @return Collection<int, MediaObject>
  73.      */
  74.     public function getMedia(): Collection
  75.     {
  76.         return $this->media;
  77.     }
  78.     public function addMedium(MediaObject $medium): self
  79.     {
  80.         if (!$this->media->contains($medium)) {
  81.             $this->media->add($medium);
  82.             $medium->setFormAnswer($this);
  83.         }
  84.         return $this;
  85.     }
  86.     public function removeMedium(MediaObject $medium): self
  87.     {
  88.         if ($this->media->removeElement($medium)) {
  89.             // set the owning side to null (unless already changed)
  90.             if ($medium->getFormAnswer() === $this) {
  91.                 $medium->setFormAnswer(null);
  92.             }
  93.         }
  94.         return $this;
  95.     }
  96.     public function getDateEntered(): ?\DateTimeInterface
  97.     {
  98.         return $this->dateEntered;
  99.     }
  100.     public function setDateEntered(\DateTimeInterface $dateEntered): self
  101.     {
  102.         $this->dateEntered $dateEntered;
  103.         return $this;
  104.     }
  105.     public function isView(): ?bool
  106.     {
  107.         return $this->view;
  108.     }
  109.     public function setView(?bool $view): self
  110.     {
  111.         $this->view $view;
  112.         return $this;
  113.     }
  114.     /**
  115.      * @return Collection<int, FormAnswerFields>
  116.      */
  117.     public function getFormAnswerFields(): Collection
  118.     {
  119.         return $this->formAnswerFields;
  120.     }
  121.     public function addFormAnswerField(FormAnswerFields $formAnswerField): self
  122.     {
  123.         if (!$this->formAnswerFields->contains($formAnswerField)) {
  124.             $this->formAnswerFields->add($formAnswerField);
  125.             $formAnswerField->setFormAnswer($this);
  126.         }
  127.         return $this;
  128.     }
  129.     public function removeFormAnswerField(FormAnswerFields $formAnswerField): self
  130.     {
  131.         if ($this->formAnswerFields->removeElement($formAnswerField)) {
  132.             // set the owning side to null (unless already changed)
  133.             if ($formAnswerField->getFormAnswer() === $this) {
  134.                 $formAnswerField->setFormAnswer(null);
  135.             }
  136.         }
  137.         return $this;
  138.     }
  139.     public function getStatus(): ?string
  140.     {
  141.         return $this->status;
  142.     }
  143.     public function setStatus(?string $status): static
  144.     {
  145.         $this->status $status;
  146.         return $this;
  147.     }
  148.     public function getDescription(): ?string
  149.     {
  150.         return $this->description;
  151.     }
  152.     public function setDescription(?string $description): static
  153.     {
  154.         $this->description $description;
  155.         return $this;
  156.     }
  157.     public function getData(): ?array
  158.     {
  159.         return $this->data;
  160.     }
  161.     public function setData(?array $data): static
  162.     {
  163.         $this->data $data;
  164.         return $this;
  165.     }
  166. }