src/Entity/Core/CrammingActivity/CrammingActivityUnit.php line 16

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity\Core\CrammingActivity;
  4. use App\Entity\User\User;
  5. use DateTime;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Doctrine\Common\Collections\Collection;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Doctrine\ORM\PersistentCollection;
  10. #[ORM\Table('cramming_activity_unit')]
  11. #[ORM\Entity(repositoryClass: CrammingActivityUnitRepository::class)]
  12. class CrammingActivityUnit
  13. {
  14. /**
  15. * @var int
  16. */
  17. #[ORM\Column(name: 'id', type: 'integer')]
  18. #[ORM\Id]
  19. #[ORM\GeneratedValue(strategy: 'AUTO')]
  20. private int $id;
  21. /**
  22. * @var CrammingActivity
  23. */
  24. #[ORM\JoinColumn(name: 'cramming_activity', referencedColumnName: 'id', onDelete: 'CASCADE')]
  25. #[ORM\ManyToOne(targetEntity: CrammingActivity::class, inversedBy: 'crammingActivityUnits')]
  26. private CrammingActivity $crammingActivity;
  27. /**
  28. * @var User
  29. */
  30. #[ORM\JoinColumn(name: 'user_id', referencedColumnName: 'id')]
  31. #[ORM\ManyToOne(targetEntity: User::class)]
  32. private User $student;
  33. #[ORM\Column(name: 'start_time', type: 'datetime', nullable: true)]
  34. protected ?DateTime $startTime;
  35. #[ORM\Column(name: 'deadline', type: 'datetime', nullable: true)]
  36. protected ?DateTime $deadline;
  37. #[ORM\Column(name: 'seconds_left', type: 'integer', nullable: true, options: ['default' => 0])]
  38. private ?int $secondsLeft;
  39. #[ORM\Column(name: 'seconds_paused', type: 'integer', nullable: true, options: ['default' => 0])]
  40. private ?int $secondsPaused;
  41. #[ORM\Column(name: 'time_paused', type: 'datetime', nullable: true)]
  42. private ?DateTime $timePaused;
  43. #[ORM\Column(name: 'time_resumed', type: 'datetime', nullable: true)]
  44. private ?DateTime $timeResumed;
  45. #[ORM\Column(name: 'is_paused', type: 'integer', nullable: true, options: ['default' => 0])]
  46. private ?int $isPaused = 0;
  47. #[ORM\Column(name: 'current_difficulties', type: 'string', length: 4096, nullable: true)]
  48. private ?string $currentDifficulties;
  49. #[ORM\Column(name: 'disabled_template_sets', type: 'string', length: 256, nullable: true)]
  50. private ?string $disabledTemplateSets;
  51. #[ORM\Column(name: 'extended_deadline', type: 'datetime', nullable: true)]
  52. private ?DateTime $extendedDeadline;
  53. #[ORM\OneToMany(targetEntity: CrammingActivityResponse::class, mappedBy: 'crammingActivityUnit', cascade: ['persist', 'remove'])]
  54. private Collection $crammingActivityResponses;
  55. public function __construct()
  56. {
  57. $this->crammingActivityResponses = new ArrayCollection();
  58. }
  59. public function getId(): int
  60. {
  61. return $this->id;
  62. }
  63. public function setId(int $id): void
  64. {
  65. $this->id = $id;
  66. }
  67. public function getCrammingActivity(): CrammingActivity
  68. {
  69. return $this->crammingActivity;
  70. }
  71. public function setCrammingActivity(CrammingActivity $crammingActivity): void
  72. {
  73. $this->crammingActivity = $crammingActivity;
  74. }
  75. public function getStudent(): User
  76. {
  77. return $this->student;
  78. }
  79. public function setStudent(User $student): void
  80. {
  81. $this->student = $student;
  82. }
  83. /**
  84. * @return ArrayCollection|CrammingActivityResponse[]
  85. */
  86. public function getCrammingActivityResponses(): Collection
  87. {
  88. return $this->crammingActivityResponses;
  89. }
  90. /**
  91. * @param CrammingActivityResponse[]|ArrayCollection $crammingActivityResponses
  92. */
  93. public function setCrammingActivityResponses(array|PersistentCollection $crammingActivityResponses): void
  94. {
  95. $this->crammingActivityResponses = $crammingActivityResponses;
  96. }
  97. public function getStartTime(): ?DateTime
  98. {
  99. return $this->startTime;
  100. }
  101. public function setStartTime(?DateTime $startTime): void
  102. {
  103. $this->startTime = $startTime;
  104. }
  105. public function getDeadline(): ?DateTime
  106. {
  107. return $this->deadline;
  108. }
  109. public function setDeadline(?DateTime $deadline): void
  110. {
  111. $this->deadline = $deadline;
  112. }
  113. public function getSecondsLeft(): ?int
  114. {
  115. return $this->secondsLeft;
  116. }
  117. public function setSecondsLeft(?int $secondsLeft): void
  118. {
  119. $this->secondsLeft = $secondsLeft;
  120. }
  121. public function getSecondsPaused(): ?int
  122. {
  123. return $this->secondsPaused;
  124. }
  125. public function setSecondsPaused(?int $secondsPaused): void
  126. {
  127. $this->secondsPaused = $secondsPaused;
  128. }
  129. public function addSecondsPaused(int $secondsPaused)
  130. {
  131. $this->secondsPaused += $secondsPaused;
  132. }
  133. public function getTimePaused(): ?DateTime
  134. {
  135. return $this->timePaused;
  136. }
  137. public function setTimePaused(?DateTime $timePaused): void
  138. {
  139. $this->timePaused = $timePaused;
  140. }
  141. public function getTimeResumed(): ?DateTime
  142. {
  143. return $this->timeResumed;
  144. }
  145. public function setTimeResumed(?DateTime $timeResumed): void
  146. {
  147. $this->timeResumed = $timeResumed;
  148. }
  149. public function getIsPaused(): int
  150. {
  151. return $this->isPaused;
  152. }
  153. public function setIsPaused(int $isPaused): void
  154. {
  155. $this->isPaused = $isPaused;
  156. }
  157. public function getCurrentDifficulties(): ?string
  158. {
  159. return $this->currentDifficulties;
  160. }
  161. public function setCurrentDifficulties(?string $currentDifficulties): void
  162. {
  163. $this->currentDifficulties = $currentDifficulties;
  164. }
  165. public function getDisabledTemplateSets(): ?string
  166. {
  167. return $this->disabledTemplateSets;
  168. }
  169. public function setDisabledTemplateSets(?string $disabledTemplateSets): void
  170. {
  171. $this->disabledTemplateSets = $disabledTemplateSets;
  172. }
  173. public function getExtendedDeadline(): ?DateTime
  174. {
  175. return $this->extendedDeadline;
  176. }
  177. public function setExtendedDeadline(DateTime $extendedDeadline): void
  178. {
  179. $this->extendedDeadline = $extendedDeadline;
  180. }
  181. }