src/Entity/ChannelUserData/Cursus/Exam.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Entity\ChannelUserData\Cursus;
  3. use Nellapp\Bundle\SDKBundle\TrackData\Attribute\TrackEntity;
  4. use Nellapp\Bundle\SDKBundle\TrackData\Attribute\TrackField;
  5. use App\Enum\ChannelUserData\Activity\CursusActivityTagEnum;
  6. use App\Repository\ChannelUserData\Cursus\ExamRepository;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Symfony\Component\Validator\Constraints as Assert;
  9. #[
  10. ORM\Entity(repositoryClass: ExamRepository::class),
  11. ORM\Table(name: 'channel_user_data_cursus_exam'),
  12. TrackEntity(
  13. name: 'exam.entity.track_data.entity.name',
  14. fieldGroups: [
  15. 'exam' => [
  16. 'tags' => [ CursusActivityTagEnum::EXAM ]
  17. ]
  18. ],
  19. )
  20. ]
  21. class Exam
  22. {
  23. const ORAL_TYPE = 0;
  24. const WRITE_TYPE = 1;
  25. #[ORM\Id, ORM\GeneratedValue]
  26. #[ORM\Column(type: 'integer')]
  27. private ?int $id = null;
  28. #[ORM\Column(type: 'integer', nullable: false)]
  29. private ?int $examOrder = null;
  30. #[ORM\ManyToOne(targetEntity: AbstractCursus::class, inversedBy: 'exams')]
  31. #[ORM\JoinColumn(nullable: false, onDelete: "CASCADE")]
  32. private ?AbstractCursus $cursus = null;
  33. #[ORM\Column(type: 'integer')]
  34. private ?int $type = null;
  35. #[ORM\Column(type: 'date')]
  36. #[Assert\NotBlank]
  37. #[TrackField(name: 'exam.entity.happenAt.label', fieldKey: 'exam', callable: 'format', callableParams: ['d/m/Y'])]
  38. private ?\DateTimeInterface $happenAt = null;
  39. #[ORM\Column(type: 'time')]
  40. #[Assert\NotBlank]
  41. #[TrackField(name: 'exam.entity.startAt.label', fieldKey: 'exam', callable: 'format', callableParams: ['H:i'])]
  42. private ?\DateTimeInterface $startAt = null;
  43. #[ORM\Column(type: 'time')]
  44. #[Assert\NotBlank]
  45. #[TrackField(name: 'exam.entity.endAt.label', fieldKey: 'exam', callable: 'format', callableParams: ['H:i'])]
  46. private ?\DateTimeInterface $endAt = null;
  47. public function __toString(): string
  48. {
  49. return $this->getExamOrder();
  50. }
  51. public function getId(): ?int
  52. {
  53. return $this->id;
  54. }
  55. public function getType(): ?int
  56. {
  57. return $this->type;
  58. }
  59. public function setType(?int $type): Exam
  60. {
  61. $this->type = $type;
  62. return $this;
  63. }
  64. public function getHappenAt(): ?\DateTimeInterface
  65. {
  66. return $this->happenAt;
  67. }
  68. public function setHappenAt(?\DateTimeInterface $happenAt): Exam
  69. {
  70. $this->happenAt = $happenAt;
  71. return $this;
  72. }
  73. public function getStartAt(): ?\DateTimeInterface
  74. {
  75. return $this->startAt;
  76. }
  77. public function setStartAt(?\DateTimeInterface $startAt): Exam
  78. {
  79. $this->startAt = $startAt;
  80. return $this;
  81. }
  82. public function getEndAt(): ?\DateTimeInterface
  83. {
  84. return $this->endAt;
  85. }
  86. public function setEndAt(?\DateTimeInterface $endAt): Exam
  87. {
  88. $this->endAt = $endAt;
  89. return $this;
  90. }
  91. public function getCursus(): ?AbstractCursus
  92. {
  93. return $this->cursus;
  94. }
  95. public function setCursus(?AbstractCursus $cursus): Exam
  96. {
  97. $this->cursus = $cursus;
  98. return $this;
  99. }
  100. public function getExamOrder(): ?int
  101. {
  102. return $this->examOrder;
  103. }
  104. public function setExamOrder(?int $examOrder): Exam
  105. {
  106. $this->examOrder = $examOrder;
  107. return $this;
  108. }
  109. }