<?php
namespace App\Entity\Core\Textbook;
use App\Entity\User\User;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
/**
* link the session with the students
*/
#[ORM\Table('textbook_session_unit')]
#[ORM\Entity(repositoryClass: TextbookSessionUnitRepository::class)]
class TextbookSessionUnit
{
/**
* @var int
*/
#[ORM\Column(name: 'id', type: 'integer')]
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'AUTO')]
private $id;
/**
* @var User
*/
#[ORM\JoinColumn(name: 'student', referencedColumnName: 'id')]
#[ORM\ManyToOne(targetEntity: User::class)]
private $student;
/**
* @var TextbookSession
*/
#[ORM\JoinColumn(name: 'session', referencedColumnName: 'id', onDelete: 'CASCADE')]
#[ORM\ManyToOne(targetEntity: TextbookSession::class, inversedBy: 'units')]
private $session;
/**
* @var bool
*/
#[ORM\Column(type: 'boolean', nullable: true, options: ['default' => null])]
private $finished = null;
/**
* @var DateTime
*/
#[ORM\Column(name: 'extended_deadline', type: 'datetime', nullable: true)]
private $extendedDeadline;
public function __construct($student, $session)
{
$this->student = $student;
$this->session = $session;
$this->finished = false;
}
public function getStudent(): User
{
return $this->student;
}
public function isFinished(): ?bool
{
return $this->finished;
}
public function setFinished(bool $finished)
{
$this->finished = $finished;
}
public function getExtendedDeadline(): ?DateTime
{
return $this->extendedDeadline;
}
public function setExtendedDeadline(DateTime $extendedDeadline): void
{
$this->extendedDeadline = $extendedDeadline;
}
}