*/ #[ORM\ManyToMany(targetEntity: Answer::class, mappedBy: 'candidates')] public private(set) Collection $answersOnCandidate; /** @var Collection */ #[ORM\OneToMany(targetEntity: GivenAnswer::class, mappedBy: 'candidate', orphanRemoval: true)] public private(set) Collection $givenAnswers; /** @var Collection */ #[ORM\OneToMany(targetEntity: QuizCandidate::class, mappedBy: 'candidate', orphanRemoval: true)] public private(set) Collection $quizData; public string $nameHash { get => Base64::base64UrlEncode($this->name); } public function __construct( #[ORM\Column(length: 16)] public string $name, ) { $this->answersOnCandidate = new ArrayCollection(); $this->givenAnswers = new ArrayCollection(); $this->quizData = new ArrayCollection(); } public function addAnswersOnCandidate(Answer $answersOnCandidate): void { if (!$this->answersOnCandidate->contains($answersOnCandidate)) { $this->answersOnCandidate->add($answersOnCandidate); $answersOnCandidate->addCandidate($this); } } public function removeAnswersOnCandidate(Answer $answersOnCandidate): void { if ($this->answersOnCandidate->removeElement($answersOnCandidate)) { $answersOnCandidate->removeCandidate($this); } } }