src/Entity/Core/Textbook/TextbookSessionUnit.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Core\Textbook;
  3. use App\Entity\User\User;
  4. use DateTime;
  5. use Doctrine\ORM\Mapping as ORM;
  6. /**
  7. * link the session with the students
  8. */
  9. #[ORM\Table('textbook_session_unit')]
  10. #[ORM\Entity(repositoryClass: TextbookSessionUnitRepository::class)]
  11. class TextbookSessionUnit
  12. {
  13. /**
  14. * @var int
  15. */
  16. #[ORM\Column(name: 'id', type: 'integer')]
  17. #[ORM\Id]
  18. #[ORM\GeneratedValue(strategy: 'AUTO')]
  19. private $id;
  20. /**
  21. * @var User
  22. */
  23. #[ORM\JoinColumn(name: 'student', referencedColumnName: 'id')]
  24. #[ORM\ManyToOne(targetEntity: User::class)]
  25. private $student;
  26. /**
  27. * @var TextbookSession
  28. */
  29. #[ORM\JoinColumn(name: 'session', referencedColumnName: 'id', onDelete: 'CASCADE')]
  30. #[ORM\ManyToOne(targetEntity: TextbookSession::class, inversedBy: 'units')]
  31. private $session;
  32. /**
  33. * @var bool
  34. */
  35. #[ORM\Column(type: 'boolean', nullable: true, options: ['default' => null])]
  36. private $finished = null;
  37. /**
  38. * @var DateTime
  39. */
  40. #[ORM\Column(name: 'extended_deadline', type: 'datetime', nullable: true)]
  41. private $extendedDeadline;
  42. public function __construct($student, $session)
  43. {
  44. $this->student = $student;
  45. $this->session = $session;
  46. $this->finished = false;
  47. }
  48. public function getStudent(): User
  49. {
  50. return $this->student;
  51. }
  52. public function isFinished(): ?bool
  53. {
  54. return $this->finished;
  55. }
  56. public function setFinished(bool $finished)
  57. {
  58. $this->finished = $finished;
  59. }
  60. public function getExtendedDeadline(): ?DateTime
  61. {
  62. return $this->extendedDeadline;
  63. }
  64. public function setExtendedDeadline(DateTime $extendedDeadline): void
  65. {
  66. $this->extendedDeadline = $extendedDeadline;
  67. }
  68. }