<?php
namespace CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use JsonSerializable;
/**
* @ORM\Table("textbook_session")
* @ORM\Entity(repositoryClass="TextbookSessionRepository")
*/
class TextbookSession implements JsonSerializable
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var Classroom
*
* @ORM\ManyToOne(targetEntity="Classroom", inversedBy="sessions")
* @ORM\JoinColumn(name="classroom", referencedColumnName="id", onDelete="CASCADE")
*/
private $classroom;
/**
* @var ArrayCollection|TextbookSubTopic[]
*
* @ORM\ManyToMany(targetEntity="TextbookSubTopic", inversedBy="textbookSessions")
* @ORM\JoinTable(name="textbook_session_subtopic",
* joinColumns={@ORM\JoinColumn(name="textbook_session", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="subtopic", referencedColumnName="id")})
*/
private $textbookSubtopics;
/**
* @var \DateTime
*
* @ORM\Column(name="start_time", type="datetime", nullable=true)
*/
private $startTime;
/**
*
* @ORM\Column(name="deadline", type="datetime")
*/
private $deadline;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $name;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $notice;
/**
* @var TextbookSessionUnit[]
*
* @ORM\OneToMany(targetEntity="CoreBundle\Entity\TextbookSessionUnit", mappedBy="session", cascade={"persist"})
*/
private $units;
/**
* @var integer
*
* @ORM\Column(type="integer", nullable=false, options={"default"=1})
*/
private $isEnabled = 1;
/**
* @return Classroom
*/
public function getClassroom()
{
return $this->classroom;
}
/**
* @param Classroom $classroom
*/
public function setClassroom($classroom)
{
$this->classroom = $classroom;
}
/**
* @return \DateTime
*/
public function getStartTime()
{
return $this->startTime;
}
/**
* @param \DateTime $startTime
*/
public function setStartTime($startTime)
{
$this->startTime = $startTime;
}
/**
* @return \DateTime
*/
public function getDeadline()
{
return $this->deadline;
}
/**
* @param \DateTime $deadline
*/
public function setDeadline($deadline)
{
$this->deadline = $deadline;
}
/**
* @return mixed
*/
public function getName()
{
return $this->name;
}
/**
* @param mixed $name
*/
public function setName($name)
{
$this->name = $name;
}
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
*
*/
public function resetId()
{
$this->id = null;
}
/**
* @return TextbookSubTopic[]|ArrayCollection
*/
public function getTextbookSubtopics()
{
return $this->textbookSubtopics;
}
/**
* @param TextbookSubTopic[]|ArrayCollection $textbookSubtopics
*/
public function setTextbookSubtopics($textbookSubtopics)
{
$this->textbookSubtopics = $textbookSubtopics;
}
/**
* @return TextbookSessionUnit[]
*/
public function getUnits()
{
return $this->units;
}
/**
* @param TextbookSessionUnit[] $units
*/
public function setUnits($units)
{
$this->units = $units;
}
public function getNotice(): ?string
{
return $this->notice;
}
public function setNotice(?String $notice)
{
$this->notice = $notice;
}
/**
* @return int
*/
public function getisEnabled(): int
{
return $this->isEnabled;
}
/**
* @param int $isEnabled
*/
public function setIsEnabled(int $isEnabled): void
{
$this->isEnabled = $isEnabled;
}
public function jsonSerialize(): mixed
{
return [
"id" => $this->getId(),
"name" => $this->getName(),
"startTime" => $this->getStartTime(),
];
}
}