<?php
namespace CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use JsonSerializable;
/**
* @ORM\Table("training_response")
* @ORM\Entity(repositoryClass="CoreBundle\Entity\TrainingResponseRepository")
*/
class TrainingResponse implements JsonSerializable
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var TrainingUnit
*
* @ORM\ManyToOne(targetEntity="TrainingUnit", inversedBy="TrainingResponses")
* @ORM\JoinColumn(name="training_unit", referencedColumnName="id", onDelete="CASCADE")
*/
private $trainingUnit;
/**
* @var Mathproblem
*
* @ORM\ManyToOne(targetEntity="Mathproblem")
* @ORM\JoinColumn(name="mathproblem", referencedColumnName="id", onDelete="CASCADE")
*/
private $mathproblem;
/**
* @var Answer
*
* @ORM\ManyToOne(targetEntity="CoreBundle\Entity\Answer")
* @ORM\JoinColumn(name="answer", referencedColumnName="id", onDelete="RESTRICT")
*/
private $answerChosen;
/**
* @var \DateTime
*
* @ORM\Column(name="end_time", type="datetime", nullable=true)
*/
private $endTime = null;
/**
* @var \DateTime
*
* @ORM\Column(name="start_time", type="datetime")
*/
private $startTime;
/**
* @ORM\ManyToOne(targetEntity="Answer")
* @ORM\JoinColumn(name="second_answer", referencedColumnName="id", onDelete="RESTRICT", nullable=true)
*/
private ?Answer $secondAnswer = null;
/**
* @var bool
*
* @ORM\Column(name="repetition_flag", type="boolean", nullable=true)
*/
private $repetitionFlag;
/**
* @var string|null
* @ORM\Column(name="answer_text", type="text", nullable=true)
*/
private string|null $answerText = null;
/**
* @var string|null
* @ORM\Column(name="second_answer_text", type="text", nullable=true)
*/
private string|null $secondAnswerText = null;
/**
* @var bool
*
* @ORM\Column(name="is_valid", type="boolean", nullable=true, options={"default":true})
*/
private $isValid = true;
/**
* @var \DateTime
*
* @ORM\Column(name="archived_at", type="datetime", nullable=true)
*/
private $archivedAt;
/**
* Get id.
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set TrainingUnit.
*
* @param TrainingUnit $TrainingUnit
*
* @return TrainingResponse
*/
public function setTrainingUnit($TrainingUnit)
{
$this->trainingUnit = $TrainingUnit;
return $this;
}
/**
* Get TrainingUnit.
*
* @return TrainingUnit
*/
public function getTrainingUnit()
{
return $this->trainingUnit;
}
/**
* Set mathproblem.
*
* @param Mathproblem $mathproblem
*
* @return TrainingResponse
*/
public function setMathproblem($mathproblem)
{
$this->mathproblem = $mathproblem;
return $this;
}
/**
* Get mathproblem.
*
* @return Mathproblem
*/
public function getMathproblem()
{
return $this->mathproblem;
}
/**
* Set answerChosen.
*
* @param Answer $answerChosen
*
* @return TrainingResponse
*/
public function setAnswerChosen($answerChosen)
{
$this->answerChosen = $answerChosen;
return $this;
}
/**
* Get answerChosen.
*
* @return Answer
*/
public function getAnswerChosen()
{
return $this->answerChosen;
}
/**
* @param \DateTime $endTime
*/
public function setEndTime($endTime)
{
$this->endTime = $endTime;
}
/**
* @return \DateTime
*/
public function getEndTime()
{
return $this->endTime;
}
/**
* @param \DateTime $startTime
*/
public function setStartTime($startTime)
{
$this->startTime = $startTime;
}
/**
* @return \DateTime
*/
public function getStartTime()
{
return $this->startTime;
}
public function getSecondAnswer(): ?Answer
{
return $this->secondAnswer;
}
/**
* @param Answer $secondAnswer
*/
public function setSecondAnswer($secondAnswer)
{
$this->secondAnswer = $secondAnswer;
}
public function getRepetitionFlag(): ?bool
{
return $this->repetitionFlag;
}
public function setRepetitionFlag(?bool $repetitionFlag)
{
$this->repetitionFlag = $repetitionFlag;
}
/**
* @return bool
*/
public function isValid(): bool
{
return $this->isValid;
}
/**
* @param bool $isValid
*/
public function setIsValid(bool $isValid): void
{
$this->isValid = $isValid;
}
/**
* @return \DateTime|null
*/
public function getArchivedAt(): ?\DateTime
{
return $this->archivedAt;
}
/**
* @param \DateTime $archivedAt
*/
public function setArchivedAt(\DateTime $archivedAt): void
{
$this->archivedAt = $archivedAt;
}
/**
* @return string|null
*/
function getAnswerText(): string|null {
return $this->answerText;
}
/**
* @param string $answerText
* @return $this
*/
function setAnswerText(string $answerText):self {
$this->answerText = $answerText;
return $this;
}
/**
* @return string|null
*/
function getSecondAnswerText(): string|null {
return $this->secondAnswerText;
}
/**
* @param string $secondAnswerText
* @return $this
*/
function setSecondAnswerText(string $secondAnswerText):self {
$this->secondAnswerText = $secondAnswerText;
return $this;
}
public function jsonSerialize(): mixed
{
return [
"id" => $this->getId(),
"answer" => $this->getAnswerChosen(),
"secondAnswer" => $this->getSecondAnswer(),
];
}
}