src/Entity/Child.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\ChildRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  8. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  9. use Symfony\Component\Security\Core\User\UserInterface;
  10. use Symfony\Component\Serializer\Annotation\Groups;
  11. use Symfony\Component\Validator\Constraints as Assert;
  12. /**
  13. * @ORM\Entity(repositoryClass=ChildRepository::class)
  14. */
  15. #[UniqueEntity(fields: ['email'], ignoreNull: true, message: 'This email is already registered.')]
  16. #[UniqueEntity(fields: ['username'], ignoreNull: true, message: 'That username is taken.')]
  17. class Child implements UserInterface, PasswordAuthenticatedUserInterface
  18. {
  19. /**
  20. * @ORM\Id
  21. * @ORM\GeneratedValue
  22. * @ORM\Column(type="integer")
  23. * @Groups({"GuardianList","ChildList","ResponsesList", "TeacherResponsesList", "DeclineHistoryList", "NotificationList","ChildPreferenceList", "ChildLessonReviewList"})
  24. */
  25. private $id;
  26. /**
  27. * @ORM\Column(type="string", length=255, nullable=true)
  28. * @Groups({"GuardianList","LessonList","ChildList","ResponsesList", "TeacherResponsesList", "ChildPreferenceAssignmentList", "DeclineHistoryList", "NotificationList", "ChildPreferenceList", "ChildLessonReviewList"})
  29. */
  30. private $fullname;
  31. /**
  32. * @ORM\ManyToOne(targetEntity=Guardian::class, inversedBy="children")
  33. * @Groups({"ChildList","ResponsesList", "TeacherResponsesList", "ChildPreferenceAssignmentList","LessonList", "DeclineHistoryList", "ChildPreferenceList"})
  34. */
  35. private $guardian;
  36. /**
  37. * @ORM\Column(type="string", length=255, nullable=true)
  38. * @Groups({"GuardianList","ChildList", "TeacherResponsesList", "ChildPreferenceAssignmentList", "ChildLessonReviewList"})
  39. */
  40. private $class;
  41. /**
  42. * @ORM\OneToMany(targetEntity=ChildPreference::class, mappedBy="child", cascade={"all"})
  43. */
  44. private $childPreferences;
  45. /**
  46. * @ORM\OneToMany(targetEntity=ChildPreferenceHistory::class, mappedBy="child", cascade={"all"})
  47. */
  48. private $childPreferenceHistories;
  49. /**
  50. * @ORM\ManyToMany(targetEntity=Lesson::class, mappedBy="children", cascade={"all"})
  51. */
  52. private $lessons;
  53. /**
  54. * @ORM\OneToMany(targetEntity=TeacherComment::class, mappedBy="child", cascade={"all"})
  55. */
  56. private $teacherComments;
  57. /**
  58. * @ORM\OneToMany(targetEntity=PaymentLog::class, mappedBy="child", cascade={"all"})
  59. */
  60. private $paymentLogs;
  61. /**
  62. * @ORM\Column(type="date", nullable=true)
  63. * @Groups({"ChildList"})
  64. */
  65. private $birthDate;
  66. /**
  67. * @ORM\Column(type="datetime", nullable=true)
  68. */
  69. private $lessonsEnd;
  70. /**
  71. * @ORM\OneToMany(targetEntity=GuardianSurveyResponse::class, mappedBy="child")
  72. */
  73. private $guardianSurveyResponses;
  74. /**
  75. * @ORM\OneToMany(targetEntity=TeacherSurveyResponse::class, mappedBy="child")
  76. */
  77. private $teacherSurveyResponses;
  78. /**
  79. * @ORM\Column(type="string", length=255, nullable=true)
  80. * @Groups({"NotificationList"})
  81. */
  82. private $email;
  83. /**
  84. * @ORM\Column(type="json")
  85. */
  86. private $roles = [];
  87. /**
  88. * @var string The hashed password
  89. * @ORM\Column(type="string")
  90. * @Assert\Length(min = 8, allowEmptyString = true)
  91. */
  92. private $password = '';
  93. /**
  94. * @ORM\Column(type="string", length=255, nullable=true)
  95. * @Groups({"NotificationList"})
  96. */
  97. private $profileImagePath;
  98. /**
  99. * @ORM\Column(type="string", length=255, nullable=true)
  100. */
  101. private $phoneNumber;
  102. /**
  103. * @ORM\Column(type="string", length=255, nullable=true)
  104. */
  105. private $lastname;
  106. /**
  107. * @ORM\Column(type="text", nullable=true)
  108. */
  109. private $fittingTimes;
  110. /**
  111. * @ORM\Column(type="text", nullable=true)
  112. */
  113. private $fittingTimesPriority;
  114. /**
  115. * @ORM\Column(type="string", length=255, nullable=true)
  116. */
  117. private $username;
  118. /**
  119. * @ORM\Column(type="boolean", nullable=true)
  120. */
  121. private $nextDayEmailLessonsRemindersGuardian = 1;
  122. /**
  123. * @ORM\Column(type="boolean", nullable=true)
  124. */
  125. private $nextDayEmailLessonsRemindersChild = 0;
  126. /**
  127. * @ORM\Column(type="boolean", nullable=true)
  128. */
  129. private $todaySMSLessonsRemindersGuardian = 1;
  130. /**
  131. * @ORM\Column(type="boolean", nullable=true)
  132. */
  133. private $todaySMSLessonsRemindersChild = 0;
  134. /**
  135. * @ORM\OneToMany(targetEntity=LessonLearncubeLog::class, mappedBy="child")
  136. */
  137. private $lessonLearncubeLogs;
  138. /**
  139. * @ORM\Column(type="datetime", nullable=true)
  140. */
  141. private $passwordSentAt;
  142. /**
  143. * @ORM\Column(type="datetime", nullable=true)
  144. */
  145. private $showEmailModal;
  146. /**
  147. * @ORM\Column(type="string", length=255, nullable=true)
  148. */
  149. private $loginToken;
  150. /**
  151. * @ORM\Column(type="text", nullable=true)
  152. */
  153. private $googleRefreshToken;
  154. /**
  155. * @ORM\Column(type="json", nullable=true)
  156. */
  157. private $googleAccessToken = [];
  158. /**
  159. * @ORM\OneToMany(targetEntity=ChildVacation::class, mappedBy="child")
  160. */
  161. private $childVacations;
  162. /**
  163. * @ORM\Column(type="boolean", nullable=true)
  164. */
  165. private $flagRU;
  166. /**
  167. * @ORM\Column(type="boolean", nullable=true)
  168. */
  169. private $flagPL;
  170. /**
  171. * @ORM\Column(type="boolean", nullable=true)
  172. */
  173. private $flagENG;
  174. /**
  175. * @ORM\Column(type="boolean", nullable=true)
  176. */
  177. private $flagIB;
  178. /**
  179. * @ORM\Column(type="boolean", nullable=true)
  180. */
  181. private $flagDyslexia;
  182. /**
  183. * @ORM\Column(type="boolean", nullable=true)
  184. */
  185. private $flagSensitive;
  186. /**
  187. * @ORM\Column(type="string", length=255, nullable=true)
  188. */
  189. private $school;
  190. /**
  191. * @ORM\Column(type="boolean", nullable=true)
  192. */
  193. private $flagStrict;
  194. /**
  195. * @ORM\Column(type="string", length=255, nullable=true)
  196. */
  197. private $gender;
  198. /**
  199. * @ORM\Column(type="boolean", nullable=true)
  200. */
  201. private $flagExperienceAtSchool;
  202. /**
  203. * @ORM\Column(type="boolean", nullable=true)
  204. */
  205. private $flagIelts;
  206. /**
  207. * @ORM\Column(type="boolean", nullable=true)
  208. */
  209. private $vbeOver90;
  210. /**
  211. * @ORM\Column(type="boolean", nullable=true)
  212. */
  213. private $experienceOver12Month;
  214. /**
  215. * @ORM\Column(type="text", nullable=true)
  216. */
  217. private $tutorComment;
  218. /**
  219. * @ORM\Column(type="text", nullable=true)
  220. */
  221. private $chatStreamToken;
  222. /**
  223. * @ORM\Column(type="datetime", nullable=true)
  224. */
  225. private $mobileAppLastUsedAt;
  226. /**
  227. * @ORM\OneToMany(targetEntity=ChildLessonReview::class, mappedBy="child")
  228. */
  229. private $childLessonReviews;
  230. public function __construct()
  231. {
  232. $this->childPreferences = new ArrayCollection();
  233. $this->childPreferenceHistories = new ArrayCollection();
  234. $this->lessons = new ArrayCollection();
  235. $this->teacherComments = new ArrayCollection();
  236. $this->paymentLogs = new ArrayCollection();
  237. $this->guardianSurveyResponses = new ArrayCollection();
  238. $this->teacherSurveyResponses = new ArrayCollection();
  239. $this->lessonLearncubeLogs = new ArrayCollection();
  240. $this->childVacations = new ArrayCollection();
  241. $this->childLessonReviews = new ArrayCollection();
  242. }
  243. public function getId(): ?int
  244. {
  245. return $this->id;
  246. }
  247. public function getGuardian(): ?Guardian
  248. {
  249. return $this->guardian;
  250. }
  251. public function setGuardian(?Guardian $guardian): self
  252. {
  253. $this->guardian = $guardian;
  254. return $this;
  255. }
  256. public function getFullname(): ?string
  257. {
  258. return $this->fullname;
  259. }
  260. public function setFullname(?string $fullname): self
  261. {
  262. $this->fullname = $fullname;
  263. return $this;
  264. }
  265. public function getClass(): ?string
  266. {
  267. return $this->class;
  268. }
  269. public function setClass(?string $class): self
  270. {
  271. $this->class = $class;
  272. return $this;
  273. }
  274. /**
  275. * @return Collection|ChildPreferenceHistory[]
  276. */
  277. public function getChildPreferenceHistories(): Collection
  278. {
  279. return $this->childPreferenceHistories;
  280. }
  281. /**
  282. * @return Collection|ChildPreference[]
  283. */
  284. public function getChildPreferences(): Collection
  285. {
  286. return $this->childPreferences;
  287. }
  288. public function addChildPreference(ChildPreference $childPreference): self
  289. {
  290. if (!$this->childPreferences->contains($childPreference)) {
  291. $this->childPreferences[] = $childPreference;
  292. $childPreference->setChild($this);
  293. }
  294. return $this;
  295. }
  296. public function removeChildPreference(ChildPreference $childPreference): self
  297. {
  298. if ($this->childPreferences->removeElement($childPreference)) {
  299. // set the owning side to null (unless already changed)
  300. if ($childPreference->getChild() === $this) {
  301. $childPreference->setChild(null);
  302. }
  303. }
  304. return $this;
  305. }
  306. public function __toString()
  307. {
  308. return "{$this->fullname} (" . $this->getGuardian()->getEmail() . ')';
  309. }
  310. public function getProfileImagePath(): ?string
  311. {
  312. return $this->profileImagePath;
  313. }
  314. public function setProfileImagePath(?string $profileImagePath): self
  315. {
  316. $this->profileImagePath = $profileImagePath;
  317. return $this;
  318. }
  319. /**
  320. * @return Collection|Lesson[]
  321. */
  322. public function getLessons(): Collection
  323. {
  324. return $this->lessons;
  325. }
  326. public function addLesson(Lesson $lesson): self
  327. {
  328. if (!$this->lessons->contains($lesson)) {
  329. $this->lessons[] = $lesson;
  330. $lesson->addChild($this);
  331. }
  332. return $this;
  333. }
  334. public function removeLesson(Lesson $lesson): self
  335. {
  336. if ($this->lessons->removeElement($lesson)) {
  337. $lesson->removeChild($this);
  338. }
  339. return $this;
  340. }
  341. /**
  342. * @return Collection|TeacherComment[]
  343. */
  344. public function getTeacherComments(): Collection
  345. {
  346. return $this->teacherComments;
  347. }
  348. public function addTeacherComment(TeacherComment $teacherComment): self
  349. {
  350. if (!$this->teacherComments->contains($teacherComment)) {
  351. $this->teacherComments[] = $teacherComment;
  352. $teacherComment->setChild($this);
  353. }
  354. return $this;
  355. }
  356. public function removeTeacherComment(TeacherComment $teacherComment): self
  357. {
  358. if ($this->teacherComments->removeElement($teacherComment)) {
  359. // set the owning side to null (unless already changed)
  360. if ($teacherComment->getChild() === $this) {
  361. $teacherComment->setChild(null);
  362. }
  363. }
  364. return $this;
  365. }
  366. /**
  367. * @return Collection|PaymentLog[]
  368. */
  369. public function getPaymentLogs(): Collection
  370. {
  371. return $this->paymentLogs;
  372. }
  373. public function addPaymentLog(PaymentLog $paymentLog): self
  374. {
  375. if (!$this->paymentLogs->contains($paymentLog)) {
  376. $this->paymentLogs[] = $paymentLog;
  377. $paymentLog->setChild($this);
  378. }
  379. return $this;
  380. }
  381. public function removePaymentLog(PaymentLog $paymentLog): self
  382. {
  383. if ($this->paymentLogs->removeElement($paymentLog)) {
  384. // set the owning side to null (unless already changed)
  385. if ($paymentLog->getChild() === $this) {
  386. $paymentLog->setChild(null);
  387. }
  388. }
  389. return $this;
  390. }
  391. public function getBirthDate(): ?\DateTimeInterface
  392. {
  393. return $this->birthDate;
  394. }
  395. public function setBirthDate(?\DateTimeInterface $birthDate): self
  396. {
  397. $this->birthDate = $birthDate;
  398. return $this;
  399. }
  400. public function getLessonsEnd(): ?\DateTimeInterface
  401. {
  402. return $this->lessonsEnd;
  403. }
  404. public function setLessonsEnd(?\DateTimeInterface $lessonsEnd): self
  405. {
  406. $this->lessonsEnd = $lessonsEnd;
  407. return $this;
  408. }
  409. /**
  410. * @return Collection|GuardianSurveyResponse[]
  411. */
  412. public function getGuardianSurveyResponses(): Collection
  413. {
  414. return $this->guardianSurveyResponses;
  415. }
  416. public function addGuardianSurveyResponse(GuardianSurveyResponse $guardianSurveyResponse): self
  417. {
  418. if (!$this->guardianSurveyResponses->contains($guardianSurveyResponse)) {
  419. $this->guardianSurveyResponses[] = $guardianSurveyResponse;
  420. $guardianSurveyResponse->setChild($this);
  421. }
  422. return $this;
  423. }
  424. public function removeGuardianSurveyResponse(GuardianSurveyResponse $guardianSurveyResponse): self
  425. {
  426. if ($this->guardianSurveyResponses->removeElement($guardianSurveyResponse)) {
  427. // set the owning side to null (unless already changed)
  428. if ($guardianSurveyResponse->getChild() === $this) {
  429. $guardianSurveyResponse->setChild(null);
  430. }
  431. }
  432. return $this;
  433. }
  434. /**
  435. * @return Collection|TeacherSurveyResponse[]
  436. */
  437. public function getTeacherSurveyResponses(): Collection
  438. {
  439. return $this->teacherSurveyResponses;
  440. }
  441. public function addTeacherSurveyResponse(TeacherSurveyResponse $teacherSurveyResponse): self
  442. {
  443. if (!$this->teacherSurveyResponses->contains($teacherSurveyResponse)) {
  444. $this->teacherSurveyResponses[] = $teacherSurveyResponse;
  445. $teacherSurveyResponse->setChild($this);
  446. }
  447. return $this;
  448. }
  449. public function removeTeacherSurveyResponse(TeacherSurveyResponse $teacherSurveyResponse): self
  450. {
  451. if ($this->teacherSurveyResponses->removeElement($teacherSurveyResponse)) {
  452. // set the owning side to null (unless already changed)
  453. if ($teacherSurveyResponse->getChild() === $this) {
  454. $teacherSurveyResponse->setChild(null);
  455. }
  456. }
  457. return $this;
  458. }
  459. public function getEmail(): ?string
  460. {
  461. return $this->email;
  462. }
  463. public function setEmail(?string $email): self
  464. {
  465. $this->email = $email;
  466. return $this;
  467. }
  468. /**
  469. * A visual identifier that represents this user.
  470. *
  471. * @see UserInterface
  472. */
  473. public function getUsername(): string
  474. {
  475. return (string)$this->username;
  476. }
  477. public function getUserIdentifier(): string
  478. {
  479. return (string) $this->email;
  480. }
  481. /**
  482. * @see UserInterface
  483. */
  484. public function getRoles(): array
  485. {
  486. $roles = ['ROLE_CHILD', 'ROLE_USER'];
  487. return array_unique($roles);
  488. }
  489. public function setRoles(array $roles): self
  490. {
  491. $roles = ['ROLE_CHILD', 'ROLE_USER'];
  492. $this->roles = $roles;
  493. return $this;
  494. }
  495. /**
  496. * @see UserInterface
  497. */
  498. public function getPassword(): string
  499. {
  500. return (string)$this->password;
  501. }
  502. public function setPassword(string $password): self
  503. {
  504. $this->password = $password;
  505. return $this;
  506. }
  507. /**
  508. * @see UserInterface
  509. */
  510. public function getSalt()
  511. {
  512. // not needed when using the "bcrypt" algorithm in security.yaml
  513. }
  514. /**
  515. * @see UserInterface
  516. */
  517. public function eraseCredentials()
  518. {
  519. // If you store any temporary, sensitive data on the user, clear it here
  520. // $this->plainPassword = null;
  521. }
  522. public function getPhoneNumber(): ?string
  523. {
  524. return $this->phoneNumber;
  525. }
  526. public function setPhoneNumber(?string $phoneNumber): self
  527. {
  528. $this->phoneNumber = $phoneNumber;
  529. return $this;
  530. }
  531. public function getLastname(): ?string
  532. {
  533. return $this->lastname;
  534. }
  535. public function setLastname(?string $lastname): self
  536. {
  537. $this->lastname = $lastname;
  538. return $this;
  539. }
  540. public function getFittingTimes(): ?string
  541. {
  542. return $this->fittingTimes;
  543. }
  544. public function setFittingTimes(?string $fittingTimes): self
  545. {
  546. $this->fittingTimes = $fittingTimes;
  547. return $this;
  548. }
  549. public function getFittingTimesPriority(): ?string
  550. {
  551. return $this->fittingTimesPriority;
  552. }
  553. public function setFittingTimesPriority(?string $fittingTimesPriority): self
  554. {
  555. $this->fittingTimesPriority = $fittingTimesPriority;
  556. return $this;
  557. }
  558. public function setUsername(?string $username): self
  559. {
  560. $this->username = $username;
  561. return $this;
  562. }
  563. public function getNextDayEmailLessonsRemindersGuardian(): ?bool
  564. {
  565. return $this->nextDayEmailLessonsRemindersGuardian;
  566. }
  567. public function setNextDayEmailLessonsRemindersGuardian(?bool $nextDayEmailLessonsRemindersGuardian): self
  568. {
  569. $this->nextDayEmailLessonsRemindersGuardian = $nextDayEmailLessonsRemindersGuardian;
  570. return $this;
  571. }
  572. public function getNextDayEmailLessonsRemindersChild(): ?bool
  573. {
  574. return $this->nextDayEmailLessonsRemindersChild;
  575. }
  576. public function setNextDayEmailLessonsRemindersChild(?bool $nextDayEmailLessonsRemindersChild): self
  577. {
  578. $this->nextDayEmailLessonsRemindersChild = $nextDayEmailLessonsRemindersChild;
  579. return $this;
  580. }
  581. public function getTodaySMSLessonsRemindersGuardian(): ?bool
  582. {
  583. return $this->todaySMSLessonsRemindersGuardian;
  584. }
  585. public function setTodaySMSLessonsRemindersGuardian(?bool $todaySMSLessonsRemindersGuardian): self
  586. {
  587. $this->todaySMSLessonsRemindersGuardian = $todaySMSLessonsRemindersGuardian;
  588. return $this;
  589. }
  590. public function getTodaySMSLessonsRemindersChild(): ?bool
  591. {
  592. return $this->todaySMSLessonsRemindersChild;
  593. }
  594. public function setTodaySMSLessonsRemindersChild(?bool $todaySMSLessonsRemindersChild): self
  595. {
  596. $this->todaySMSLessonsRemindersChild = $todaySMSLessonsRemindersChild;
  597. return $this;
  598. }
  599. public function getUnickoFunction(): ?bool
  600. {
  601. $unickoFunction = false;
  602. /**
  603. * @var ChildPreference $childPreference
  604. */
  605. foreach ($this->childPreferences as $childPreference) {
  606. $teacher = $childPreference->getTeacher();
  607. if (isset($teacher) && $teacher->getUnickoFunction()) {
  608. $unickoFunction = true;
  609. break;
  610. }
  611. }
  612. return $unickoFunction;
  613. }
  614. /**
  615. * @return Collection<int, LessonLearncubeLog>
  616. */
  617. public function getLessonLearncubeLogs(): Collection
  618. {
  619. return $this->lessonLearncubeLogs;
  620. }
  621. public function addLessonLearncubeLog(LessonLearncubeLog $lessonLearncubeLog): self
  622. {
  623. if (!$this->lessonLearncubeLogs->contains($lessonLearncubeLog)) {
  624. $this->lessonLearncubeLogs[] = $lessonLearncubeLog;
  625. $lessonLearncubeLog->setChild($this);
  626. }
  627. return $this;
  628. }
  629. public function removeLessonLearncubeLog(LessonLearncubeLog $lessonLearncubeLog): self
  630. {
  631. if ($this->lessonLearncubeLogs->removeElement($lessonLearncubeLog)) {
  632. // set the owning side to null (unless already changed)
  633. if ($lessonLearncubeLog->getChild() === $this) {
  634. $lessonLearncubeLog->setChild(null);
  635. }
  636. }
  637. return $this;
  638. }
  639. public function getPasswordSentAt(): ?\DateTimeInterface
  640. {
  641. return $this->passwordSentAt;
  642. }
  643. public function setPasswordSentAt(?\DateTimeInterface $passwordSentAt): self
  644. {
  645. $this->passwordSentAt = $passwordSentAt;
  646. return $this;
  647. }
  648. public function getShowEmailModal(): ?\DateTimeInterface
  649. {
  650. return $this->showEmailModal;
  651. }
  652. public function setShowEmailModal(?\DateTimeInterface $showEmailModal): self
  653. {
  654. $this->showEmailModal = $showEmailModal;
  655. return $this;
  656. }
  657. public function showEmailSurvey()
  658. {
  659. $showModal = false;
  660. if (!$this->getShowEmailModal() || (new \DateTime())->format('Y-m') != $this->getShowEmailModal()->format('Y-m')) {
  661. if (!$this->getEmail()) {
  662. $showModal = true;
  663. }
  664. }
  665. return $showModal;
  666. }
  667. public function getLoginToken(): ?string
  668. {
  669. return $this->loginToken;
  670. }
  671. public function setLoginToken(?string $loginToken): self
  672. {
  673. $this->loginToken = $loginToken;
  674. return $this;
  675. }
  676. public function getGoogleRefreshToken(): ?string
  677. {
  678. return $this->googleRefreshToken;
  679. }
  680. public function setGoogleRefreshToken(?string $googleRefreshToken): self
  681. {
  682. $this->googleRefreshToken = $googleRefreshToken;
  683. return $this;
  684. }
  685. public function getGoogleAccessToken(): ?array
  686. {
  687. return $this->googleAccessToken;
  688. }
  689. public function setGoogleAccessToken(?array $googleAccessToken): self
  690. {
  691. $this->googleAccessToken = $googleAccessToken;
  692. return $this;
  693. }
  694. /**
  695. * @return Collection<int, ChildVacation>
  696. */
  697. public function getChildVacations(): Collection
  698. {
  699. return $this->childVacations;
  700. }
  701. public function addChildVacation(ChildVacation $childVacation): self
  702. {
  703. if (!$this->childVacations->contains($childVacation)) {
  704. $this->childVacations[] = $childVacation;
  705. $childVacation->setChild($this);
  706. }
  707. return $this;
  708. }
  709. public function removeChildVacation(ChildVacation $childVacation): self
  710. {
  711. if ($this->childVacations->removeElement($childVacation)) {
  712. // set the owning side to null (unless already changed)
  713. if ($childVacation->getChild() === $this) {
  714. $childVacation->setChild(null);
  715. }
  716. }
  717. return $this;
  718. }
  719. public function getFlagRU(): ?bool
  720. {
  721. return $this->flagRU;
  722. }
  723. public function setFlagRU(?bool $flagRU): self
  724. {
  725. $this->flagRU = $flagRU;
  726. return $this;
  727. }
  728. public function getFlagPL(): ?bool
  729. {
  730. return $this->flagPL;
  731. }
  732. public function setFlagPL(?bool $flagPL): self
  733. {
  734. $this->flagPL = $flagPL;
  735. return $this;
  736. }
  737. public function getFlagENG(): ?bool
  738. {
  739. return $this->flagENG;
  740. }
  741. public function setFlagENG(?bool $flagENG): self
  742. {
  743. $this->flagENG = $flagENG;
  744. return $this;
  745. }
  746. public function getFlagIB(): ?bool
  747. {
  748. return $this->flagIB;
  749. }
  750. public function setFlagIB(?bool $flagIB): self
  751. {
  752. $this->flagIB = $flagIB;
  753. return $this;
  754. }
  755. public function getFlagDyslexia(): ?bool
  756. {
  757. return $this->flagDyslexia;
  758. }
  759. public function setFlagDyslexia(?bool $flagDyslexia): self
  760. {
  761. $this->flagDyslexia = $flagDyslexia;
  762. return $this;
  763. }
  764. public function getFlagSensitive(): ?bool
  765. {
  766. return $this->flagSensitive;
  767. }
  768. public function setFlagSensitive(?bool $flagSensitive): self
  769. {
  770. $this->flagSensitive = $flagSensitive;
  771. return $this;
  772. }
  773. public function getSchool(): ?string
  774. {
  775. return $this->school;
  776. }
  777. public function setSchool(?string $school): self
  778. {
  779. $this->school = $school;
  780. return $this;
  781. }
  782. public function isFlagStrict(): ?bool
  783. {
  784. return $this->flagStrict;
  785. }
  786. public function setFlagStrict(?bool $flagStrict): self
  787. {
  788. $this->flagStrict = $flagStrict;
  789. return $this;
  790. }
  791. public function getGender(): ?string
  792. {
  793. return $this->gender;
  794. }
  795. public function setGender(?string $gender): self
  796. {
  797. $this->gender = $gender;
  798. return $this;
  799. }
  800. public function isFlagExperienceAtSchool(): ?bool
  801. {
  802. return $this->flagExperienceAtSchool;
  803. }
  804. public function setFlagExperienceAtSchool(?bool $flagExperienceAtSchool): self
  805. {
  806. $this->flagExperienceAtSchool = $flagExperienceAtSchool;
  807. return $this;
  808. }
  809. public function isFlagIelts(): ?bool
  810. {
  811. return $this->flagIelts;
  812. }
  813. public function setFlagIelts(?bool $flagIelts): self
  814. {
  815. $this->flagIelts = $flagIelts;
  816. return $this;
  817. }
  818. public function isVbeOver90(): ?bool
  819. {
  820. return $this->vbeOver90;
  821. }
  822. public function setVbeOver90(?bool $vbeOver90): self
  823. {
  824. $this->vbeOver90 = $vbeOver90;
  825. return $this;
  826. }
  827. public function isExperienceOver12Month(): ?bool
  828. {
  829. return $this->experienceOver12Month;
  830. }
  831. public function setExperienceOver12Month(?bool $experienceOver12Month): self
  832. {
  833. $this->experienceOver12Month = $experienceOver12Month;
  834. return $this;
  835. }
  836. public function getTutorComment(): ?string
  837. {
  838. return $this->tutorComment;
  839. }
  840. public function setTutorComment(?string $tutorComment): self
  841. {
  842. $this->tutorComment = $tutorComment;
  843. return $this;
  844. }
  845. public function getChatStreamToken(): ?string
  846. {
  847. return $this->chatStreamToken;
  848. }
  849. public function setChatStreamToken(?string $chatStreamToken): self
  850. {
  851. $this->chatStreamToken = $chatStreamToken;
  852. return $this;
  853. }
  854. public function getMobileAppLastUsedAt(): ?\DateTimeInterface
  855. {
  856. return $this->mobileAppLastUsedAt;
  857. }
  858. public function setMobileAppLastUsedAt(?\DateTimeInterface $mobileAppLastUsedAt): self
  859. {
  860. $this->mobileAppLastUsedAt = $mobileAppLastUsedAt;
  861. return $this;
  862. }
  863. /**
  864. * @return Collection<int, ChildLessonReview>
  865. */
  866. public function getChildLessonReviews(): Collection
  867. {
  868. return $this->childLessonReviews;
  869. }
  870. public function addChildLessonReview(ChildLessonReview $childLessonReview): self
  871. {
  872. if (!$this->childLessonReviews->contains($childLessonReview)) {
  873. $this->childLessonReviews[] = $childLessonReview;
  874. $childLessonReview->setChild($this);
  875. }
  876. return $this;
  877. }
  878. public function removeChildLessonReview(ChildLessonReview $childLessonReview): self
  879. {
  880. if ($this->childLessonReviews->removeElement($childLessonReview)) {
  881. // set the owning side to null (unless already changed)
  882. if ($childLessonReview->getChild() === $this) {
  883. $childLessonReview->setChild(null);
  884. }
  885. }
  886. return $this;
  887. }
  888. }