<?php
namespace CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use JsonSerializable;
/**
* @ORM\Table("cramming_activity_response")
* @ORM\Entity(repositoryClass="CoreBundle\Entity\CrammingActivityResponseRepository")
*/
class CrammingActivityResponse implements JsonSerializable
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var CrammingActivityUnit
*
* @ORM\ManyToOne(targetEntity="CrammingActivityUnit", inversedBy="crammingActivityResponses")
* @ORM\JoinColumn(name="cramming_activity_unit", referencedColumnName="id", onDelete="CASCADE")
*/
private $crammingActivityUnit;
/**
* @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 Answer
*
* @ORM\ManyToOne(targetEntity="CoreBundle\Entity\Answer")
* @ORM\JoinColumn(name="second_answer", referencedColumnName="id", onDelete="RESTRICT")
*/
private $secondAnswer;
/**
* @var answerText
*
* @ORM\Column(name="answer_text", type="text", nullable=true)
*/
private $answerText;
/**
* @var secondAnswerText
*
* @ORM\Column(name="second_answer_text", type="text", nullable=true)
*/
private $secondAnswerText;
/**
* @var \DateTime
*
* @ORM\Column(name="start_time", type="datetime")
*/
private $startTime;
/**
* @var \DateTime
*
* @ORM\Column(name="end_time", type="datetime", nullable=true)
*/
private $endTime = null;
/**
* @var int
*
* @ORM\Column(name="seconds_delayed", type="integer", nullable=true, options={"default":0})
*/
private $secondsDelayed = 0;
/**
* @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;
/**
* @var TemplateSet
*
* @ORM\ManyToOne(targetEntity="TemplateSet")
* @ORM\JoinColumn(name="template_set", referencedColumnName="id", onDelete="CASCADE")
*/
private $templateSet;
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*/
public function setId(int $id): void
{
$this->id = $id;
}
/**
* @return CrammingActivityUnit
*/
public function getCrammingActivityUnit(): CrammingActivityUnit
{
return $this->crammingActivityUnit;
}
/**
* @param CrammingActivityUnit $crammingActivityUnit
*/
public function setCrammingActivityUnit(CrammingActivityUnit $crammingActivityUnit): void
{
$this->crammingActivityUnit = $crammingActivityUnit;
}
/**
* @return Mathproblem
*/
public function getMathproblem(): Mathproblem
{
return $this->mathproblem;
}
/**
* @param Mathproblem $mathproblem
*/
public function setMathproblem(Mathproblem $mathproblem): void
{
$this->mathproblem = $mathproblem;
}
/**
* @return Answer
*/
public function getAnswerChosen(): ?Answer
{
return $this->answerChosen;
}
/**
* @param Answer $answerChosen
*/
public function setAnswerChosen(?Answer $answerChosen): void
{
$this->answerChosen = $answerChosen;
}
/**
* @return \DateTime
*/
public function getEndTime(): ?\DateTime
{
return $this->endTime;
}
/**
* @param \DateTime $endTime
*/
public function setEndTime(?\DateTime $endTime): void
{
$this->endTime = $endTime;
}
/**
* @return \DateTime
*/
public function getStartTime(): \DateTime
{
return $this->startTime;
}
/**
* @param \DateTime $startTime
*/
public function setStartTime(\DateTime $startTime): void
{
$this->startTime = $startTime;
}
/**
* @return TemplateSet
*/
public function getTemplateSet(): TemplateSet
{
return $this->templateSet;
}
/**
* @param TemplateSet $templateSet
*/
public function setTemplateSet(TemplateSet $templateSet): void
{
$this->templateSet = $templateSet;
}
/**
* @return int
*/
public function getSecondsDelayed(): ?int
{
return $this->secondsDelayed;
}
/**
* @param int $secondsDelayed
*/
public function setSecondsDelayed(?int $secondsDelayed): void
{
$this->secondsDelayed = $secondsDelayed;
}
/**
* @return Answer
*/
public function getSecondAnswer(): ?Answer
{
return $this->secondAnswer;
}
/**
* @param Answer $secondAnswer
*/
public function setSecondAnswer(Answer $secondAnswer): void
{
$this->secondAnswer = $secondAnswer;
}
/**
* @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;
}
/**
* @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;
}
public function jsonSerialize(): array
{
return [
'id' => $this->id,
'answerChosen' => $this->answerChosen,
'secondAnswer' => $this->secondAnswer,
'isValid' => $this->isValid,
];
}
}