src/Entity/Core/Dictate/DictateUnit.php line 14

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity\Core\Dictate;
  4. use App\Entity\User\User;
  5. use DateTime;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Doctrine\ORM\PersistentCollection;
  8. #[ORM\Table('dictate_unit')]
  9. #[ORM\Entity(repositoryClass: DictateUnitRepository::class)]
  10. class DictateUnit
  11. {
  12. #[ORM\Column(name: 'id', type: 'integer')]
  13. #[ORM\Id]
  14. #[ORM\GeneratedValue(strategy: 'AUTO')]
  15. private int $id;
  16. /**
  17. * @var
  18. */
  19. #[ORM\JoinColumn(name: 'dictate_session', referencedColumnName: 'id', onDelete: 'CASCADE')]
  20. #[ORM\ManyToOne(targetEntity: DictateSession::class, inversedBy: 'dictateUnits')]
  21. private DictateSession $dictateSession;
  22. /**
  23. * @var
  24. */
  25. #[ORM\JoinColumn(name: 'student', referencedColumnName: 'id')]
  26. #[ORM\ManyToOne(targetEntity: User::class)]
  27. private User $student;
  28. #[ORM\Column(name: 'deadline', type: 'datetime', nullable: true)]
  29. private ?DateTime $deadline;
  30. /**
  31. * @var
  32. */
  33. #[ORM\Column(name: 'finished', type: 'boolean', options: ['default' => false])]
  34. private bool $finished;
  35. /**
  36. * @var DictateResponse[]
  37. */
  38. #[ORM\OneToMany(targetEntity: DictateResponse::class, mappedBy: 'dictateUnit', cascade: ['persist'])]
  39. private PersistentCollection $dictateResponses;
  40. #[ORM\Column(name: 'extended_deadline', type: 'datetime', nullable: true)]
  41. private ?DateTime $extendedDeadline;
  42. public function getId(): int
  43. {
  44. return $this->id;
  45. }
  46. public function setId(int $id): void
  47. {
  48. $this->id = $id;
  49. }
  50. public function getDictateSession(): DictateSession
  51. {
  52. return $this->dictateSession;
  53. }
  54. public function setDictateSession(DictateSession $dictateSession): void
  55. {
  56. $this->dictateSession = $dictateSession;
  57. }
  58. public function getStudent(): User
  59. {
  60. return $this->student;
  61. }
  62. public function setStudent(User $student): void
  63. {
  64. $this->student = $student;
  65. }
  66. public function getDeadline(): ?DateTime
  67. {
  68. return $this->deadline;
  69. }
  70. public function setDeadline(?DateTime $deadline): void
  71. {
  72. $this->deadline = $deadline;
  73. }
  74. public function isFinished(): bool
  75. {
  76. return $this->finished;
  77. }
  78. public function setFinished(bool $finished): void
  79. {
  80. $this->finished = $finished;
  81. }
  82. public function getValidDictateResponses(): array
  83. {
  84. $quizResponses = [];
  85. foreach ($this->dictateResponses as $response) {
  86. $quizResponses[] = $response;
  87. }
  88. return $quizResponses;
  89. }
  90. public function getExtendedDeadline(): ?DateTime
  91. {
  92. return $this->extendedDeadline;
  93. }
  94. public function setExtendedDeadline(DateTime $extendedDeadline): void
  95. {
  96. $this->extendedDeadline = $extendedDeadline;
  97. }
  98. }