<?php
namespace App\Entity;
use App\Repository\QuestionAnswerRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use App\Entity\BasePost;
/**
* @ORM\Entity(repositoryClass=QuestionAnswerRepository::class)
* @UniqueEntity("name")
*/
class QuestionAnswer
{
use BasePost;
/* overriden relations */
/**
* @see BasePost
* @ORM\ManyToMany(targetEntity="App\Entity\Tag", inversedBy="questionAnswers")
*/
private $tags;
/* new relations */
/**
* @ORM\ManyToMany(targetEntity="App\Entity\Media", mappedBy="questionAnswers", cascade={"persist", "remove"})
*/
private $medias;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\QuestionAnswer")
* @ORM\OrderBy({"priority" = "DESC", "name" = "ASC"})
* @ORM\JoinTable(name="questionanswer_questionanswer_seealso",
* joinColumns={@ORM\JoinColumn(name="seealso_questionanswer_source", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="seealso_questionanswer_target", referencedColumnName="id")}
* )
*/
private $seealsoQuestionAnswers;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\Structure")
* @ORM\OrderBy({"priority" = "DESC", "name" = "ASC"})
*/
private $seealsoStructures;
public function __construct()
{
// BasePost::__construct();
$this->tags = new ArrayCollection();
$this->medias = new ArrayCollection();
$this->seealsoQuestionAnswers = new ArrayCollection();
$this->seealsoStructures = new ArrayCollection();
}
public function __toString()
{
return $this->name;
}
/**
* @return Collection|Media[]
*/
public function getMedias(): Collection
{
return $this->medias;
}
public function addMedia(Media $media): self
{
if (!$this->medias->contains($media)) {
$this->medias[] = $media;
$media->addQuestionAnswer($this);
}
return $this;
}
public function removeMedia(Media $media): self
{
if ($this->medias->contains($media)) {
$this->medias->removeElement($media);
$media->removeQuestionAnswer($this);
}
return $this;
}
/**
* @return Collection|QuestionAnswer[]
*/
public function getSeealsoQuestionAnswers(): Collection
{
return $this->seealsoQuestionAnswers;
}
public function addSeealsoQuestionAnswer(QuestionAnswer $questionAnswer): self
{
if (!$this->seealsoQuestionAnswers->contains($questionAnswer)) {
$this->seealsoQuestionAnswers[] = $questionAnswer;
$questionAnswer->addSeealsoQuestionAnswer($this);
}
return $this;
}
public function removeSeealsoQuestionAnswer(QuestionAnswer $questionAnswer): self
{
if ($this->seealsoQuestionAnswers->contains($questionAnswer)) {
$this->seealsoQuestionAnswers->removeElement($questionAnswer);
$questionAnswer->removeSeealsoQuestionAnswer($this);
}
return $this;
}
/**
* @return Collection|Structure[]
*/
public function getSeealsoStructures(): Collection
{
return $this->seealsoStructures;
}
public function addSeealsoStructure(Structure $structure): self
{
if (!$this->seealsoStructures->contains($structure)) {
$this->seealsoStructures[] = $structure;
$structure->addSeealsoStructure($this);
}
return $this;
}
public function removeSeealsoStructure(Structure $structure): self
{
if ($this->seealsoStructures->contains($structure)) {
$this->seealsoStructures->removeElement($structure);
$structure->removeSeealsoStructure($this);
}
return $this;
}
}