<?php
namespace CoreBundle\Entity;
use DateTime;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use UserBundle\Entity\User;
/**
* @ORM\Table("cramming_activity_unit")
* @ORM\Entity(repositoryClass="CoreBundle\Entity\CrammingActivityUnitRepository")
*/
class CrammingActivityUnit
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var CrammingActivity
*
* @ORM\ManyToOne(targetEntity="CoreBundle\Entity\CrammingActivity", inversedBy="crammingActivityUnits")
* @ORM\JoinColumn(name="cramming_activity", referencedColumnName="id", onDelete="CASCADE")
*/
private $crammingActivity;
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="UserBundle\Entity\User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $student;
/**
* @var CrammingActivityResponse[]
*
* @ORM\OneToMany(targetEntity="CrammingActivityResponse",
* mappedBy="crammingActivityUnit", cascade={"persist","remove"})
*/
private $CrammingActivityResponses;
/**
* @var \DateTime
*
* @ORM\Column(name="start_time", type="datetime", nullable=true)
*/
protected $startTime;
/**
* @var \DateTime
*
* @ORM\Column(name="deadline", type="datetime", nullable=true)
*/
protected $deadline;
/**
* @var int
*
* @ORM\Column(name="seconds_left", type="integer", nullable=true, options={"default":0})
*/
private $secondsLeft;
/**
* @var int
*
* @ORM\Column(name="seconds_paused", type="integer", nullable=true, options={"default":0})
*/
private $secondsPaused;
/**
* @var \DateTime
*
* @ORM\Column(name="time_paused", type="datetime", nullable=true)
*/
private $timePaused;
/**
* @var \DateTime
*
* @ORM\Column(name="time_resumed", type="datetime", nullable=true)
*/
private $timeResumed;
/**
* @ORM\Column(name="is_paused", type="integer", nullable=true, options={"default"=0})
*/
private $isPaused = 0;
/**
* @var string|null
*
* @ORM\Column(name="current_difficulties", type="string", length=4096, nullable=true)
*/
private $currentDifficulties;
/**
* @var string
*
* @ORM\Column(name="disabled_template_sets", type="string", length=256, nullable=true)
*/
private $disabledTemplateSets;
/**
* @var \DateTime
*
* @ORM\Column(name="extended_deadline", type="datetime", nullable=true)
*/
private $extendedDeadline;
/**
* @ORM\OneToMany(targetEntity="CrammingActivityResponse",
* mappedBy="crammingActivityUnit", cascade={"persist","remove"})
*/
private Collection $crammingActivityResponses;
public function __construct()
{
$this->crammingActivityResponses = new ArrayCollection();
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*/
public function setId(int $id): void
{
$this->id = $id;
}
/**
* @return CrammingActivity
*/
public function getCrammingActivity(): CrammingActivity
{
return $this->crammingActivity;
}
/**
* @param CrammingActivity $crammingActivity
*/
public function setCrammingActivity(CrammingActivity $crammingActivity): void
{
$this->crammingActivity = $crammingActivity;
}
/**
* @return User
*/
public function getStudent(): User
{
return $this->student;
}
/**
* @param User $student
*/
public function setStudent(User $student): void
{
$this->student = $student;
}
/**
* @return ArrayCollection|CrammingActivityResponse[]
*/
public function getCrammingActivityResponses(): Collection
{
return $this->crammingActivityResponses;
}
/**
* @param CrammingActivityResponse[]|ArrayCollection $crammingActivityResponses
*/
public function setCrammingActivityResponses(array $crammingActivityResponses): void
{
$this->crammingActivityResponses = $crammingActivityResponses;
}
/**
* @return \DateTime
*/
public function getStartTime(): ?\DateTime
{
return $this->startTime;
}
/**
* @param \DateTime $startTime
*/
public function setStartTime(?\DateTime $startTime): void
{
$this->startTime = $startTime;
}
/**
* @return \DateTime
*/
public function getDeadline(): ?\DateTime
{
return $this->deadline;
}
/**
* @param \DateTime $deadline
*/
public function setDeadline(?\DateTime $deadline): void
{
$this->deadline = $deadline;
}
/**
* @return int
*/
public function getSecondsLeft(): ?int
{
return $this->secondsLeft;
}
/**
* @param int $secondsLeft
*/
public function setSecondsLeft(?int $secondsLeft): void
{
$this->secondsLeft = $secondsLeft;
}
/**
* @return int
*/
public function getSecondsPaused(): ?int
{
return $this->secondsPaused;
}
/**
* @param int $secondsPaused
*/
public function setSecondsPaused(?int $secondsPaused): void
{
$this->secondsPaused = $secondsPaused;
}
/**
* @param int $secondsPaused
*/
public function addSecondsPaused(int $secondsPaused)
{
$this->secondsPaused += $secondsPaused;
}
/**
* @return \DateTime
*/
public function getTimePaused(): ?\DateTime
{
return $this->timePaused;
}
/**
* @param \DateTime $timePaused
*/
public function setTimePaused(?\DateTime $timePaused): void
{
$this->timePaused = $timePaused;
}
/**
* @return \DateTime
*/
public function getTimeResumed(): ?\DateTime
{
return $this->timeResumed;
}
/**
* @param \DateTime $timeResumed
*/
public function setTimeResumed(?\DateTime $timeResumed): void
{
$this->timeResumed = $timeResumed;
}
/**
* @return int
*/
public function getIsPaused(): int
{
return $this->isPaused;
}
/**
* @param int $isPaused
*/
public function setIsPaused(int $isPaused): void
{
$this->isPaused = $isPaused;
}
/**
* @return string|null
*/
public function getCurrentDifficulties()
{
return $this->currentDifficulties;
}
/**
* @param $currentDifficulties
*/
public function setCurrentDifficulties($currentDifficulties): void
{
$this->currentDifficulties = $currentDifficulties;
}
/**
* @return mixed
*/
public function getDisabledTemplateSets()
{
return $this->disabledTemplateSets;
}
/**
* @param mixed $disabledTemplateSets
*/
public function setDisabledTemplateSets($disabledTemplateSets): void
{
$this->disabledTemplateSets = $disabledTemplateSets;
}
/**
* @return DateTime|null
*/
public function getExtendedDeadline(): ?\DateTime
{
return $this->extendedDeadline;
}
/**
* @param DateTime $extendedDeadline
*/
public function setExtendedDeadline(DateTime $extendedDeadline): void
{
$this->extendedDeadline = $extendedDeadline;
}
}