<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Fluoresce\ValidateEmbedded\Constraints as FluoresceAssert;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass="App\Repository\SurveyContributionStepRepository")
*/
class SurveyContributionStep
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @var SurveyContribution
*
* @ORM\ManyToOne(targetEntity="App\Entity\SurveyContribution", inversedBy="contributionSteps")
* @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
* @Assert\NotNull()
*/
private $contribution;
/**
* @var SurveyFormStep
*
* @ORM\ManyToOne(targetEntity="App\Entity\SurveyFormStep")
* @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
* @Assert\NotNull()
*/
private $formStep;
/**
* @var ArrayCollection
*
* @ORM\OneToMany(targetEntity="App\Entity\SurveyContributionQuestion", cascade={"persist"}, mappedBy="contributionStep")
* @FluoresceAssert\Validate(embeddedGroups={"Default"})
* @Groups({"surveyContribution:read"})
*/
private $contributionQuestions;
public function __construct()
{
$this->contributionQuestions = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getContribution(): ?SurveyContribution
{
return $this->contribution;
}
public function setContribution(?SurveyContribution $contribution): self
{
$this->contribution = $contribution;
return $this;
}
public function getFormStep(): ?SurveyFormStep
{
return $this->formStep;
}
public function setFormStep(?SurveyFormStep $formStep): self
{
$this->formStep = $formStep;
return $this;
}
/**
* @return Collection|SurveyContributionQuestion[]
*/
public function getContributionQuestions(): Collection
{
return $this->contributionQuestions;
}
public function addContributionQuestion(SurveyContributionQuestion $contributionQuestion): self
{
if (!$this->contributionQuestions->contains($contributionQuestion)) {
$this->contributionQuestions[] = $contributionQuestion;
$contributionQuestion->setContributionStep($this);
}
return $this;
}
public function removeContributionQuestion(SurveyContributionQuestion $contributionQuestion): self
{
if ($this->contributionQuestions->contains($contributionQuestion)) {
$this->contributionQuestions->removeElement($contributionQuestion);
// set the owning side to null (unless already changed)
if ($contributionQuestion->getContributionStep() === $this) {
$contributionQuestion->setContributionStep(null);
}
}
return $this;
}
}