<?php
namespace App\Entity\Quiz;
use App\Entity\EntityIdentifier;
use App\Entity\Profil\Profil;
use App\Entity\UserRiasecResponse;
use App\Repository\Quiz\RiasecQuizResponseRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Knp\DoctrineBehaviors\Model as ORMBehaviors;
/**
* @ORM\Entity(repositoryClass=RiasecQuizResponseRepository::class)
* @ORM\HasLifecycleCallbacks()
*/
class RiasecQuizResponse
{
use ORMBehaviors\Translatable\Translatable;
use EntityIdentifier;
/**
* @ORM\OneToMany(targetEntity=RiasecQuizResponseTranslation::class, mappedBy="translatable", cascade={"persist", "remove"})
*/
protected $newTranslations;
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity=Profil::class, inversedBy="riasecQuizResponses")
*/
private $profile;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $enable;
/**
* @ORM\ManyToOne(targetEntity=RiasecQuiz::class, inversedBy="riasecQuizResponses")
*/
private $riasecQuiz;
/**
* @ORM\OneToMany(targetEntity=UserRiasecResponse::class, mappedBy="riasecResponse", cascade={"remove"})
*/
private $userRiasecResponses;
public function __construct ()
{
$this->enable = false;
$this->userRiasecResponses = new ArrayCollection();
}
/**
* @ORM\PostLoad()
*/
public function init() {
$this->mergeNewTranslations();
$this->currentLocale = \Locale::getDefault();
}
public function getId(): ?int
{
return $this->id;
}
public function getProfile(): ?Profil
{
return $this->profile;
}
public function setProfile(?Profil $profile): self
{
$this->profile = $profile;
return $this;
}
public function isEnable(): ?bool
{
return $this->enable;
}
public function setEnable(?bool $enable): self
{
$this->enable = $enable;
return $this;
}
public function getRiasecQuiz(): ?RiasecQuiz
{
return $this->riasecQuiz;
}
public function setRiasecQuiz(?RiasecQuiz $riasecQuiz): self
{
$this->riasecQuiz = $riasecQuiz;
return $this;
}
public function __call($name, $arguments) {
$reflect = new \ReflectionClass( RiasecQuizResponseTranslation::class);
$privateProperties = $reflect->getProperties(\ReflectionProperty::IS_PRIVATE);
foreach ($privateProperties as $property) {
if($property->getName() == $name) {
return $this->translate()->{"get" . ucfirst($name)}();
}
}
return "";
}
/**
* @return Collection<int, UserRiasecResponse>
*/
public function getUserRiasecResponses(): Collection
{
return $this->userRiasecResponses;
}
public function addUserRiasecResponse(UserRiasecResponse $userRiasecResponse): self
{
if (!$this->userRiasecResponses->contains($userRiasecResponse)) {
$this->userRiasecResponses[] = $userRiasecResponse;
$userRiasecResponse->setRiasecResponse($this);
}
return $this;
}
public function removeUserRiasecResponse(UserRiasecResponse $userRiasecResponse): self
{
if ($this->userRiasecResponses->removeElement($userRiasecResponse)) {
// set the owning side to null (unless already changed)
if ($userRiasecResponse->getRiasecResponse() === $this) {
$userRiasecResponse->setRiasecResponse(null);
}
}
return $this;
}
}