src/Entity/Teacher.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\TeacherRegister\TeacherRegister;
  4. use App\Repository\TeacherRepository;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use phpDocumentor\Reflection\Types\This;
  9. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  10. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  11. use Symfony\Component\Security\Core\User\UserInterface;
  12. use Symfony\Component\Serializer\Annotation\Groups;
  13. /**
  14. * @ORM\Entity(repositoryClass=TeacherRepository::class)
  15. * @ORM\Table(name="teacher",indexes={
  16. * @ORM\Index(name="unicko_function_id_idx", columns={"unicko_function", "id"})
  17. * })
  18. * @UniqueEntity("email")
  19. */
  20. class Teacher implements UserInterface, PasswordAuthenticatedUserInterface
  21. {
  22. const STATUS_ACTIVE = "Aktyvus";
  23. const STATUS_INACTIVE = "Neaktyvus";
  24. const STATUS_SUSPENDED = "Laikinai sustabdęs";
  25. const TEACHER_STATUSES = [self::STATUS_ACTIVE, self::STATUS_INACTIVE, self::STATUS_SUSPENDED];
  26. const LEVELS = [
  27. [
  28. 'name' => 'Junior Tutor',
  29. 'hoursMin' => 0,
  30. 'hoursMax' => 110,
  31. 'hourlyRate' => 8,
  32. 'badge' => 'junior',
  33. 'hourlyImpact' => 0,
  34. ],
  35. [
  36. 'name' => 'Mid Tutor',
  37. 'hoursMin' => 110,
  38. 'hoursMax' => 256,
  39. 'hourlyRate' => 9,
  40. 'badge' => 'mid',
  41. 'hourlyImpact' => 12.5,
  42. ],
  43. [
  44. 'name' => 'Senior Tutor',
  45. 'hoursMin' => 256,
  46. 'hoursMax' => 402,
  47. 'hourlyRate' => 10,
  48. 'badge' => 'senior',
  49. 'hourlyImpact' => 25,
  50. ],
  51. [
  52. 'name' => 'Pro Tutor',
  53. 'hoursMin' => 402,
  54. 'hoursMax' => 548,
  55. 'hourlyRate' => 11,
  56. 'badge' => 'pro',
  57. 'hourlyImpact' => 37.5,
  58. ],
  59. [
  60. 'name' => 'Expert Tutor',
  61. 'hoursMin' => 548,
  62. 'hoursMax' => 694,
  63. 'hourlyRate' => 12,
  64. 'badge' => 'expert',
  65. 'hourlyImpact' => 50,
  66. ],
  67. [
  68. 'name' => 'Master Tutor',
  69. 'hoursMin' => 694,
  70. 'hoursMax' => 840,
  71. 'hourlyRate' => 13,
  72. 'badge' => 'master',
  73. 'hourlyImpact' => 62.5,
  74. ],
  75. [
  76. 'name' => 'Pro Expert',
  77. 'hoursMin' => 840,
  78. 'hoursMax' => 986,
  79. 'hourlyRate' => 14,
  80. 'badge' => 'proexpert',
  81. 'hourlyImpact' => 75,
  82. ],
  83. [
  84. 'name' => 'Pro Master',
  85. 'hoursMin' => 986,
  86. 'hoursMax' => 1132,
  87. 'hourlyRate' => 15,
  88. 'badge' => 'promaster',
  89. 'hourlyImpact' => 87.5,
  90. ],
  91. [
  92. 'name' => 'Pro Master Tutor *',
  93. 'hoursMin' => 1132,
  94. 'hoursMax' => 1278,
  95. 'hourlyRate' => 16,
  96. 'badge' => 'promaster1',
  97. 'hourlyImpact' => 100,
  98. ],
  99. [
  100. 'name' => 'Pro Master Tutor **',
  101. 'hoursMin' => 1278,
  102. 'hoursMax' => 1424,
  103. 'hourlyRate' => 17,
  104. 'badge' => 'promaster2',
  105. 'hourlyImpact' => 112.5,
  106. ],
  107. [
  108. 'name' => 'Pro Master Tutor ***',
  109. 'hoursMin' => 1424,
  110. 'hoursMax' => 1570,
  111. 'hourlyRate' => 18,
  112. 'badge' => 'promaster3',
  113. 'hourlyImpact' => 125,
  114. ],
  115. [
  116. 'name' => 'Premium Tutor *',
  117. 'hoursMin' => 1570,
  118. 'hoursMax' => 1716,
  119. 'hourlyRate' => 19,
  120. 'badge' => 'premium1',
  121. 'hourlyImpact' => 137.5,
  122. ],
  123. [
  124. 'name' => 'Premium Tutor **',
  125. 'hoursMin' => 1716,
  126. 'hoursMax' => 99999,
  127. 'hourlyRate' => 20,
  128. 'badge' => 'premium2',
  129. 'hourlyImpact' => 150,
  130. ],
  131. ];
  132. /**
  133. * @ORM\Id
  134. * @ORM\GeneratedValue
  135. * @ORM\Column(type="integer")
  136. * @Groups({"CensorshipList","TeacherList","TeacherRegisterList","TeacherModList","ResponsesList","ChildPreferenceAssignmentList", "DeclineHistoryList", "NotificationList", "ChildPreferenceList", "AdminConfirmationsList", "TeacherSickLeavesList", "TabletList", "WoltCouponList","ChildLessonReviewList"})
  137. */
  138. private $id;
  139. /**
  140. * @ORM\Column(type="string", length=180, unique=true)
  141. * @Groups({"CensorshipList","showme","TeacherList", "NotificationList", "ChildPreferenceList", "TeacherSickLeavesList", "TabletList", "WoltCouponList","ChildLessonReviewList"})
  142. */
  143. private $email;
  144. /**
  145. * @ORM\Column(type="json")
  146. * @Groups({"TeacherList", "TeacherRegisterList"})
  147. */
  148. private $roles = ['ROLE_TEACHER', 'ROLE_USER'];
  149. /**
  150. * @var string The hashed password
  151. * @ORM\Column(type="string")
  152. */
  153. private $password;
  154. /**
  155. * @ORM\Column(type="string", length=255, nullable=true)
  156. * @Groups({"showme","LessonList","TeacherList","ChildPreferenceList", "TeacherSurveyList","TeacherModList","ResponsesList","ChildPreferenceAssignmentList", "DeclineHistoryList", "NotificationList", "AdminConfirmationsList", "TeacherSickLeavesList", "TabletList", "WoltCouponList","ChildLessonReviewList"})
  157. */
  158. private $fullname;
  159. /**
  160. * @ORM\Column(type="string", length=255, nullable=true)
  161. * @Groups({"showme","LessonList","TeacherList","ChildPreferenceAssignmentList"})
  162. */
  163. private $phoneNumber;
  164. /**
  165. * @ORM\Column(type="string", length=255, nullable=true)
  166. * @Groups({"showme","TeacherList"})
  167. */
  168. private $university;
  169. /**
  170. * @ORM\Column(type="datetime", nullable=true)
  171. * @Groups({"TeacherList", "ChildPreferenceList"})
  172. */
  173. private $workStart;
  174. /**
  175. * @ORM\Column(type="datetime", nullable=true)
  176. * @Groups({"TeacherList"})
  177. */
  178. private $workEnd;
  179. /**
  180. * @ORM\Column(type="string", length=255, nullable=true)
  181. * @Groups({"TeacherList"})
  182. */
  183. private $maxLoad;
  184. /**
  185. * @ORM\Column(type="string", length=255, nullable=true)
  186. * @Groups({"TeacherList", "ChildPreferenceList"})
  187. */
  188. private $available = 0;
  189. /**
  190. * @ORM\Column(type="string", length=255, nullable=true)
  191. * @Groups({"TeacherList","ResponsesList", "TeacherRegisterList"})
  192. */
  193. private $status;
  194. /**
  195. * @ORM\OneToMany(targetEntity=ChildPreference::class, mappedBy="teacher")
  196. */
  197. private $childPreferences;
  198. /**
  199. * @ORM\OneToMany(targetEntity=ChildPreferenceHistory::class, mappedBy="teacher")
  200. */
  201. private $childPreferenceHistories;
  202. /**
  203. * @ORM\Column(type="string", length=255, nullable=true)
  204. * @Groups({"showme"})
  205. */
  206. private $individualNumber;
  207. /**
  208. * @ORM\OneToMany(targetEntity=Lesson::class, mappedBy="teacher")
  209. */
  210. private $lessons;
  211. /**
  212. * @ORM\Column(type="string", length=255, nullable=true)
  213. * @Groups({"TeacherSurveyList", "NotificationList"})
  214. */
  215. private $profileImagePath;
  216. /**
  217. * @ORM\OneToMany(targetEntity=TeacherPayment::class, mappedBy="teacher")
  218. */
  219. private $teacherPayments;
  220. /**
  221. * @ORM\OneToMany(targetEntity=TeacherPaymentLog::class, mappedBy="teacher")
  222. */
  223. private $teacherPaymentLogs;
  224. /**
  225. * @ORM\OneToMany(targetEntity=TeacherComment::class, mappedBy="teacher")
  226. */
  227. private $teacherComments;
  228. /**
  229. * @ORM\Column(type="datetime", nullable=true)
  230. */
  231. private $dateAdd;
  232. /**
  233. * @ORM\Column(type="string", length=255, nullable=true)
  234. * @Groups({"TeacherList"})
  235. */
  236. private $classes = "";
  237. /**
  238. * @ORM\ManyToMany(targetEntity=Discipline::class, inversedBy="teachers")
  239. * @Groups({"TeacherList"})
  240. */
  241. private $disciplines;
  242. /**
  243. * @ORM\Column(type="string", length=255, nullable=true)
  244. * @Groups({"TeacherList"})
  245. */
  246. private $paymentStatus = Payment::STATUS_NOTPAID;
  247. /**
  248. * @ORM\OneToMany(targetEntity=TeacherDisciplineClass::class, mappedBy="teacher", cascade={"all"})
  249. * @Groups({"TeacherList"})
  250. */
  251. private $teacherDisciplineClasses;
  252. /**
  253. * @ORM\Column(type="string", length=255, nullable=true)
  254. * @Groups({"showme"})
  255. */
  256. private $accountNumber;
  257. /**
  258. * @ORM\OneToMany(targetEntity=TeacherPriceChange::class, mappedBy="teacher", cascade={"all"})
  259. */
  260. private $teacherPriceChanges;
  261. /**
  262. * @ORM\OneToMany(targetEntity=TeacherAvailabilityTime::class, mappedBy="teacher", cascade={"all"})
  263. */
  264. private $teacherAvailabilityTimes;
  265. /**
  266. * @ORM\Column(type="text", nullable=true)
  267. * @Groups({"TeacherList"})
  268. */
  269. private $comment;
  270. /**
  271. * @ORM\OneToMany(targetEntity=GuardianSurveyResponse::class, mappedBy="teacher")
  272. */
  273. private $guardianSurveyResponses;
  274. /**
  275. * @ORM\Column(type="string", length=255, nullable=true)
  276. * @Groups({"TeacherList"})
  277. */
  278. private $shortName;
  279. /**
  280. * @ORM\Column(type="string", length=255, nullable=true)
  281. * @Groups({"TeacherList"})
  282. */
  283. private $summer;
  284. /**
  285. * @ORM\OneToMany(targetEntity=TeacherSurvey::class, mappedBy="teacher")
  286. */
  287. private $teacherSurveys;
  288. /**
  289. * @ORM\OneToMany(targetEntity=TeacherSurveyResponse::class, mappedBy="teacher")
  290. */
  291. private $teacherSurveyResponses;
  292. /**
  293. * @ORM\Column(type="boolean", nullable=true,options={"default" : "0"})
  294. */
  295. private $showSurvey = false;
  296. /**
  297. * @ORM\Column(type="text", nullable=true)
  298. */
  299. private $shortDescription;
  300. /**
  301. * @ORM\Column(type="string", length=255, nullable=true)
  302. * @Groups({"TeacherSurveyList"})
  303. */
  304. private $discordName;
  305. /**
  306. * @ORM\Column(type="boolean", nullable=true)
  307. */
  308. private $blockNextDayLessonsReminders;
  309. /**
  310. * @ORM\Column(type="boolean", nullable=true)
  311. */
  312. private $blockTodayLessonsReminders;
  313. /**
  314. * @ORM\Column(type="float", nullable=true,options={"default" : "0"})
  315. */
  316. private $workedHours = 0;
  317. /**
  318. * @ORM\Column(type="float", nullable=true,options={"default" : "0"})
  319. */
  320. private $workedHoursMarch = 0;
  321. /**
  322. * @ORM\Column(type="string", length=255, nullable=true,options={"default" : "Junior Tutor"})
  323. * @Groups({"TeacherList"})
  324. */
  325. private $levelName = "Junior Tutor";
  326. /**
  327. * @ORM\OneToMany(targetEntity=TeacherHoliday::class, mappedBy="teacher")
  328. */
  329. private $teacherHolidays;
  330. /**
  331. * @ORM\Column(type="integer", nullable=true)
  332. * @Groups({"TeacherList","LessonList"})
  333. */
  334. private $lessonsMissed;
  335. /**
  336. * @ORM\Column(type="datetime", nullable=true)
  337. * @Groups({"TeacherList"})
  338. */
  339. private $warningDate;
  340. /**
  341. * @ORM\Column(type="boolean", nullable=true)
  342. * @Groups({"TeacherList"})
  343. */
  344. private $flagRU;
  345. /**
  346. * @ORM\Column(type="boolean", nullable=true)
  347. * @Groups({"TeacherList"})
  348. */
  349. private $flagPL;
  350. /**
  351. * @ORM\Column(type="boolean", nullable=true)
  352. * @Groups({"TeacherList"})
  353. */
  354. private $flagENG;
  355. /**
  356. * @ORM\Column(type="boolean", nullable=true)
  357. * @Groups({"TeacherList"})
  358. */
  359. private $flagIB;
  360. /**
  361. * @ORM\Column(type="boolean", nullable=true)
  362. * @Groups({"TeacherList"})
  363. */
  364. private $flagDyslexia;
  365. /**
  366. * @ORM\Column(type="boolean", nullable=true)
  367. * @Groups({"TeacherList"})
  368. */
  369. private $flagSensitive;
  370. /**
  371. * @ORM\Column(type="boolean", nullable=true)
  372. * @Groups({"TeacherList"})
  373. */
  374. private $flagTrial;
  375. /**
  376. * @ORM\Column(type="string", length=255, nullable=true)
  377. * @Groups({"TeacherList"})
  378. */
  379. private $extraLoad;
  380. /**
  381. * @ORM\OneToMany(targetEntity=LessonLearncubeLog::class, mappedBy="teacher")
  382. */
  383. private $lessonLearncubeLogs;
  384. /**
  385. * @ORM\Column(type="text", nullable=true)
  386. * @Groups({"TeacherList"})
  387. */
  388. private $adminComment;
  389. /**
  390. * @ORM\Column(type="string", length=255, nullable=true)
  391. */
  392. private $educationStage;
  393. /**
  394. * @ORM\OneToMany(targetEntity=ChildPreferenceDeclineHistory::class, mappedBy="teacher")
  395. */
  396. private $childPreferenceDeclineHistories;
  397. /**
  398. * @ORM\OneToMany(targetEntity=TeacherHoursBonus::class, mappedBy="teacher")
  399. */
  400. private $teacherHoursBonuses;
  401. /**
  402. * @ORM\OneToMany(targetEntity=TeacherTablet::class, mappedBy="teacher")
  403. */
  404. private $teacherTablets;
  405. /**
  406. * @ORM\Column(type="datetime", nullable=true)
  407. * @Groups({"TeacherList"})
  408. */
  409. private $lcFrom;
  410. /**
  411. * @ORM\OneToMany(targetEntity=TeacherUnavailableRange::class, mappedBy="teacher")
  412. * @Groups({"TeacherList"})
  413. */
  414. private $teacherUnavailableRanges;
  415. /**
  416. * @ORM\Column(type="string", length=255, nullable=true)
  417. */
  418. private $contractTerminateReason;
  419. /**
  420. * @ORM\Column(type="float", nullable=true)
  421. * @Groups({"TeacherList"})
  422. */
  423. private $contractTerminateFee;
  424. /**
  425. * @ORM\Column(type="boolean", nullable=true)
  426. * @Groups({"TeacherList"})
  427. */
  428. private $contractTerminateFeePaid;
  429. /**
  430. * @ORM\Column(type="boolean", nullable=true)
  431. * @Groups({"TeacherList"})
  432. */
  433. private $unickoFunction;
  434. /**
  435. * @ORM\OneToOne(targetEntity=TeacherRegister::class, mappedBy="teacher", cascade={"persist", "remove"})
  436. * @Groups({"TeacherList"})
  437. */
  438. private $teacherRegister;
  439. /**
  440. * @ORM\Column(type="datetime", nullable=true)
  441. * @Groups({"TeacherList"})
  442. */
  443. private $birthday;
  444. /**
  445. * @ORM\Column(type="string", length=255, nullable=true)
  446. */
  447. private $individualWorkFilePath;
  448. /**
  449. * @ORM\Column(type="string", length=255, nullable=true)
  450. */
  451. private $country;
  452. /**
  453. * @ORM\Column(type="boolean", nullable=true)
  454. * @Groups({"TeacherList"})
  455. */
  456. private $summerTime;
  457. /**
  458. * @ORM\Column(type="string", length=255, nullable=true)
  459. * @Groups({"TeacherList"})
  460. */
  461. private $studyField;
  462. /**
  463. * @ORM\Column(type="datetime", nullable=true)
  464. * @Groups({"TeacherList"})
  465. */
  466. private $congratulatedBirthday;
  467. /**
  468. * @ORM\Column(type="text", nullable=true)
  469. */
  470. private $googleRefreshToken;
  471. /**
  472. * @ORM\Column(type="json", nullable=true)
  473. */
  474. private $googleAccessToken = [];
  475. /**
  476. * @ORM\Column(type="string", length=255, nullable=true)
  477. */
  478. private $threemaPassword;
  479. /**
  480. * @ORM\Column(type="string", length=255, nullable=true)
  481. * @Groups({"TeacherList"})
  482. */
  483. private $threemaId;
  484. /**
  485. * @ORM\Column(type="string", length=255, nullable=true)
  486. * @Groups({"TeacherList"})
  487. */
  488. private $threemaStatus;
  489. /**
  490. * @ORM\Column(type="string", length=255, nullable=true)
  491. * @Groups({"TeacherList"})
  492. */
  493. private $threemaGroup;
  494. /**
  495. * @ORM\Column(type="boolean", nullable=true)
  496. * @Groups({"TeacherList"})
  497. */
  498. private $trainingStarted = 0;
  499. /**
  500. * @ORM\Column(type="boolean", nullable=true)
  501. * @Groups({"TeacherList"})
  502. */
  503. private $trainingEnded = 0;
  504. /**
  505. * @ORM\Column(type="string", length=255, nullable=true)
  506. */
  507. private $referralCode;
  508. /**
  509. * @ORM\Column(type="string", length=255, nullable=true)
  510. * @Groups({"TeacherList"})
  511. */
  512. private $school;
  513. /**
  514. * @ORM\Column(type="integer", nullable=true)
  515. * @Groups({"TeacherList"})
  516. */
  517. private $ielts;
  518. /**
  519. * @ORM\OneToMany(targetEntity=TeacherSickLeaves::class, mappedBy="teacher")
  520. */
  521. private $teacherSickLeaves;
  522. /**
  523. * @ORM\Column(type="string", length=255, nullable=true)
  524. */
  525. private $personalIdentificationNumber;
  526. /**
  527. * @ORM\OneToMany(targetEntity=TeacherPaymentBonusProposal::class, mappedBy="teacher")
  528. */
  529. private $teacherPaymentBonusProposals;
  530. /**
  531. * @ORM\OneToMany(targetEntity=Tablet::class, mappedBy="teacher")
  532. */
  533. private $tablets;
  534. /**
  535. * @ORM\OneToMany(targetEntity=WoltCoupon::class, mappedBy="teacher")
  536. */
  537. private $woltCoupons;
  538. /**
  539. * @ORM\Column(type="boolean", nullable=true)
  540. * @Groups({"TeacherList"})
  541. */
  542. private $flagWeb;
  543. /**
  544. * @ORM\Column(type="boolean", nullable=true)
  545. */
  546. private $flagStrict;
  547. /**
  548. * @ORM\Column(type="string", length=255, nullable=true)
  549. */
  550. private $gender;
  551. /**
  552. * @ORM\Column(type="boolean", nullable=true)
  553. */
  554. private $flagExperienceAtSchool;
  555. /**
  556. * @ORM\Column(type="boolean", nullable=true)
  557. */
  558. private $flagPriorityAssignment;
  559. /**
  560. * @ORM\OneToOne(targetEntity=TeacherPreference::class, mappedBy="teacher", cascade={"persist", "remove"})
  561. */
  562. private $teacherPreference;
  563. /**
  564. * @ORM\Column(type="string", length=255, nullable=true)
  565. */
  566. private $newContractMarksignUrl;
  567. /**
  568. * @ORM\Column(type="boolean", nullable=true)
  569. */
  570. private $newCotractSigned;
  571. /**
  572. * @ORM\Column(type="string", length=255, nullable=true)
  573. */
  574. private $newContractMarksignDocumentId;
  575. /**
  576. * @ORM\Column(type="string", length=255, nullable=true)
  577. */
  578. private $newContractSignedUrl;
  579. /**
  580. * @ORM\Column(type="string", length=255, nullable=true)
  581. */
  582. private $newContractType;
  583. /**
  584. * @ORM\Column(type="datetime", nullable=true)
  585. * @Groups({"TeacherList"})
  586. */
  587. private $summerAt;
  588. /**
  589. * @ORM\Column(type="boolean", nullable=true)
  590. */
  591. private $flagOnlyIB;
  592. /**
  593. * @ORM\Column(type="boolean", nullable=true)
  594. * @Groups({"TeacherList"})
  595. */
  596. private $flagAutoAcceptAssignment;
  597. /**
  598. * @ORM\Column(type="integer", nullable=true)
  599. */
  600. private $gapBetweenAssignments;
  601. /**
  602. * @ORM\Column(type="boolean", nullable=true)
  603. * @Groups({"TeacherList"})
  604. */
  605. private $flagAutoAcceptAssignmentTeacher;
  606. /**
  607. * @ORM\Column(type="integer", nullable=true)
  608. */
  609. private $gapBetweenAssignmentsTeacher;
  610. /**
  611. * @ORM\Column(type="datetime", nullable=true)
  612. */
  613. private $gapBetweenAssignmentsSubmittedAt;
  614. /**
  615. * @ORM\Column(type="text", nullable=true)
  616. */
  617. private $chatStreamToken;
  618. /**
  619. * @ORM\Column(type="datetime", nullable=true)
  620. */
  621. private $maxLoadChangedAt;
  622. /**
  623. * @ORM\Column(type="datetime", nullable=true)
  624. */
  625. private $mobileAppLastUsedAt;
  626. /**
  627. * @ORM\OneToOne(targetEntity=TeacherQRCode::class, mappedBy="teacher", cascade={"persist", "remove"})
  628. */
  629. private $qrCode;
  630. /**
  631. * @ORM\OneToMany(targetEntity=ChatCensorshipJournal::class, mappedBy="teacher")
  632. */
  633. private $chatCensorshipJournals;
  634. /**
  635. * @ORM\OneToMany(targetEntity=ChildLessonReview::class, mappedBy="Teacher")
  636. */
  637. private $childLessonReviews;
  638. /**
  639. * @ORM\OneToMany(targetEntity=TeacherPublicProfile::class, mappedBy="teacher")
  640. */
  641. private $teacherPublicProfiles;
  642. public function __construct()
  643. {
  644. $this->childPreferences = new ArrayCollection();
  645. $this->childPreferenceHistories = new ArrayCollection();
  646. $this->lessons = new ArrayCollection();
  647. $this->teacherPayments = new ArrayCollection();
  648. $this->teacherPaymentLogs = new ArrayCollection();
  649. $this->teacherComments = new ArrayCollection();
  650. $this->dateAdd = new \DateTime();
  651. $this->disciplines = new ArrayCollection();
  652. $this->teacherDisciplineClasses = new ArrayCollection();
  653. $this->teacherPriceChanges = new ArrayCollection();
  654. $this->teacherAvailabilityTimes = new ArrayCollection();
  655. $this->guardianSurveyResponses = new ArrayCollection();
  656. $this->teacherSurveys = new ArrayCollection();
  657. $this->teacherSurveyResponses = new ArrayCollection();
  658. $this->teacherHolidays = new ArrayCollection();
  659. $this->lessonLearncubeLogs = new ArrayCollection();
  660. $this->childPreferenceDeclineHistories = new ArrayCollection();
  661. $this->teacherHoursBonuses = new ArrayCollection();
  662. $this->teacherTablets = new ArrayCollection();
  663. $this->teacherUnavailableRanges = new ArrayCollection();
  664. $this->teacherSickLeaves = new ArrayCollection();
  665. $this->teacherPaymentBonusProposals = new ArrayCollection();
  666. $this->tablets = new ArrayCollection();
  667. $this->woltCoupons = new ArrayCollection();
  668. $this->chatCensorshipJournals = new ArrayCollection();
  669. $this->childLessonReviews = new ArrayCollection();
  670. $this->teacherPublicProfiles = new ArrayCollection();
  671. }
  672. public function getId(): ?int
  673. {
  674. return $this->id;
  675. }
  676. public function getEmail(): ?string
  677. {
  678. return $this->email;
  679. }
  680. public function setEmail(string $email): self
  681. {
  682. $this->email = $email;
  683. return $this;
  684. }
  685. /**
  686. * A visual identifier that represents this user.
  687. *
  688. * @see UserInterface
  689. */
  690. public function getUsername(): string
  691. {
  692. return (string) $this->email;
  693. }
  694. public function getUserIdentifier(): string
  695. {
  696. return (string) $this->email;
  697. }
  698. /**
  699. * @see UserInterface
  700. */
  701. public function getRoles(): array
  702. {
  703. if(!$this->roles){
  704. $roles = ['ROLE_TEACHER', 'ROLE_USER'];
  705. }
  706. else{
  707. $roles = $this->roles;
  708. }
  709. return array_unique($roles);
  710. }
  711. public function setRoles(array $roles): self
  712. {
  713. $this->roles = $roles;
  714. return $this;
  715. }
  716. /**
  717. * @see UserInterface
  718. */
  719. public function getPassword(): string
  720. {
  721. return (string) $this->password;
  722. }
  723. public function setPassword(string $password): self
  724. {
  725. $this->password = $password;
  726. return $this;
  727. }
  728. /**
  729. * @see UserInterface
  730. */
  731. public function getSalt()
  732. {
  733. // not needed when using the "bcrypt" algorithm in security.yaml
  734. }
  735. /**
  736. * @see UserInterface
  737. */
  738. public function eraseCredentials()
  739. {
  740. // If you store any temporary, sensitive data on the user, clear it here
  741. // $this->plainPassword = null;
  742. }
  743. public function getFullname($showFull = false): ?string
  744. {
  745. if($showFull){
  746. return $this->fullname;
  747. }
  748. else{
  749. $name = explode(" ",$this->fullname)[0];
  750. $name = $name . " " . $this->threemaId;
  751. return $name;
  752. }
  753. }
  754. public function setFullname(?string $fullname): self
  755. {
  756. $this->fullname = $fullname;
  757. return $this;
  758. }
  759. public function getPhoneNumber(): ?string
  760. {
  761. return $this->phoneNumber;
  762. }
  763. public function setPhoneNumber(?string $phoneNumber): self
  764. {
  765. $this->phoneNumber = $phoneNumber;
  766. return $this;
  767. }
  768. public function getUniversity(): ?string
  769. {
  770. return $this->university;
  771. }
  772. public function setUniversity(?string $university): self
  773. {
  774. $this->university = $university;
  775. return $this;
  776. }
  777. public function getWorkStart(): ?\DateTimeInterface
  778. {
  779. return $this->workStart;
  780. }
  781. public function setWorkStart(?\DateTimeInterface $workStart): self
  782. {
  783. $this->workStart = $workStart;
  784. return $this;
  785. }
  786. public function getWorkEnd(): ?\DateTimeInterface
  787. {
  788. return $this->workEnd;
  789. }
  790. public function setWorkEnd(?\DateTimeInterface $workEnd): self
  791. {
  792. $this->workEnd = $workEnd;
  793. return $this;
  794. }
  795. public function getMaxLoad(): ?string
  796. {
  797. return $this->maxLoad;
  798. }
  799. public function setMaxLoad(?string $maxLoad): self
  800. {
  801. $this->maxLoad = $maxLoad;
  802. return $this;
  803. }
  804. /**
  805. * @Groups({"TeacherList"})
  806. */
  807. public function getCurrentLoad()
  808. {
  809. $maxLoad = $this->maxLoad ?: 0;
  810. return $maxLoad - $this->available;
  811. }
  812. public function getAvailable(): ?string
  813. {
  814. return $this->available;
  815. }
  816. public function setAvailable(?string $available): self
  817. {
  818. $this->available = $available;
  819. return $this;
  820. }
  821. public function getStatus(): ?string
  822. {
  823. return $this->status;
  824. }
  825. public function setStatus(?string $status): self
  826. {
  827. $this->status = $status;
  828. return $this;
  829. }
  830. /**
  831. * @return Collection|ChildPreferenceHistory[]
  832. */
  833. public function getChildPreferenceHistories(): Collection
  834. {
  835. return $this->childPreferenceHistories;
  836. }
  837. /**
  838. * @return Collection|ChildPreference[]
  839. */
  840. public function getChildPreferences(): Collection
  841. {
  842. return $this->childPreferences;
  843. }
  844. public function addChildPreference(ChildPreference $childPreference): self
  845. {
  846. if (!$this->childPreferences->contains($childPreference)) {
  847. $this->childPreferences[] = $childPreference;
  848. $childPreference->setTeacher($this);
  849. }
  850. return $this;
  851. }
  852. public function removeChildPreference(ChildPreference $childPreference): self
  853. {
  854. if ($this->childPreferences->removeElement($childPreference)) {
  855. // set the owning side to null (unless already changed)
  856. if ($childPreference->getTeacher() === $this) {
  857. $childPreference->setTeacher(null);
  858. }
  859. }
  860. return $this;
  861. }
  862. public function getIndividualNumber(): ?string
  863. {
  864. return $this->individualNumber;
  865. }
  866. public function setIndividualNumber(?string $individualNumber): self
  867. {
  868. $this->individualNumber = $individualNumber;
  869. return $this;
  870. }
  871. public function getAccountNumber(): ?string
  872. {
  873. return $this->accountNumber;
  874. }
  875. public function setAccountNumber(?string $accountNumber): self
  876. {
  877. $this->accountNumber = $accountNumber;
  878. return $this;
  879. }
  880. public function __toString()
  881. {
  882. return "{$this->fullname}";
  883. }
  884. /**
  885. * @return Collection|Lesson[]
  886. */
  887. public function getLessons(): Collection
  888. {
  889. return $this->lessons;
  890. }
  891. public function addLesson(Lesson $lesson): self
  892. {
  893. if (!$this->lessons->contains($lesson)) {
  894. $this->lessons[] = $lesson;
  895. $lesson->setTeacher($this);
  896. }
  897. return $this;
  898. }
  899. public function removeLesson(Lesson $lesson): self
  900. {
  901. if ($this->lessons->removeElement($lesson)) {
  902. // set the owning side to null (unless already changed)
  903. if ($lesson->getTeacher() === $this) {
  904. $lesson->setTeacher(null);
  905. }
  906. }
  907. return $this;
  908. }
  909. public function getProfileImagePath(): ?string
  910. {
  911. return $this->profileImagePath;
  912. }
  913. public function setProfileImagePath(?string $profileImagePath): self
  914. {
  915. $this->profileImagePath = $profileImagePath;
  916. return $this;
  917. }
  918. /**
  919. * @return Collection|TeacherPayment[]
  920. */
  921. public function getTeacherPayments(): Collection
  922. {
  923. return $this->teacherPayments;
  924. }
  925. public function addTeacherPayment(TeacherPayment $teacherPayment): self
  926. {
  927. if (!$this->teacherPayments->contains($teacherPayment)) {
  928. $this->teacherPayments[] = $teacherPayment;
  929. $teacherPayment->setTeacher($this);
  930. }
  931. return $this;
  932. }
  933. public function removeTeacherPayment(TeacherPayment $teacherPayment): self
  934. {
  935. if ($this->teacherPayments->removeElement($teacherPayment)) {
  936. // set the owning side to null (unless already changed)
  937. if ($teacherPayment->getTeacher() === $this) {
  938. $teacherPayment->setTeacher(null);
  939. }
  940. }
  941. return $this;
  942. }
  943. /**
  944. * @return Collection|TeacherPaymentLog[]
  945. */
  946. public function getTeacherPaymentLogs(): Collection
  947. {
  948. return $this->teacherPaymentLogs;
  949. }
  950. public function addTeacherPaymentLog(TeacherPaymentLog $teacherPaymentLog): self
  951. {
  952. if (!$this->teacherPaymentLogs->contains($teacherPaymentLog)) {
  953. $this->teacherPaymentLogs[] = $teacherPaymentLog;
  954. $teacherPaymentLog->setTeacher($this);
  955. }
  956. return $this;
  957. }
  958. public function removeTeacherPaymentLog(TeacherPaymentLog $teacherPaymentLog): self
  959. {
  960. if ($this->teacherPaymentLogs->removeElement($teacherPaymentLog)) {
  961. // set the owning side to null (unless already changed)
  962. if ($teacherPaymentLog->getTeacher() === $this) {
  963. $teacherPaymentLog->setTeacher(null);
  964. }
  965. }
  966. return $this;
  967. }
  968. /**
  969. * @return Collection|TeacherComment[]
  970. */
  971. public function getTeacherComments(): Collection
  972. {
  973. return $this->teacherComments;
  974. }
  975. public function addTeacherComment(TeacherComment $teacherComment): self
  976. {
  977. if (!$this->teacherComments->contains($teacherComment)) {
  978. $this->teacherComments[] = $teacherComment;
  979. $teacherComment->setTeacher($this);
  980. }
  981. return $this;
  982. }
  983. public function removeTeacherComment(TeacherComment $teacherComment): self
  984. {
  985. if ($this->teacherComments->removeElement($teacherComment)) {
  986. // set the owning side to null (unless already changed)
  987. if ($teacherComment->getTeacher() === $this) {
  988. $teacherComment->setTeacher(null);
  989. }
  990. }
  991. return $this;
  992. }
  993. public function __call($name, $arguments)
  994. {
  995. // TODO: Implement @method string getUserIdentifier()
  996. }
  997. public function getDateAdd(): ?\DateTimeInterface
  998. {
  999. return $this->dateAdd;
  1000. }
  1001. public function setDateAdd(?\DateTimeInterface $dateAdd): self
  1002. {
  1003. $this->dateAdd = $dateAdd;
  1004. return $this;
  1005. }
  1006. public function getClasses(): ?array
  1007. {
  1008. return explode(',',$this->classes);
  1009. }
  1010. public function setClasses(?array $classes): self
  1011. {
  1012. $classes = implode(',', $classes);
  1013. $this->classes = $classes;
  1014. return $this;
  1015. }
  1016. /**
  1017. * @return Collection|Discipline[]
  1018. */
  1019. public function getDisciplines(): Collection
  1020. {
  1021. return $this->disciplines;
  1022. }
  1023. public function addDiscipline(Discipline $discipline): self
  1024. {
  1025. if (!$this->disciplines->contains($discipline)) {
  1026. $this->disciplines[] = $discipline;
  1027. }
  1028. return $this;
  1029. }
  1030. public function removeDiscipline(Discipline $discipline): self
  1031. {
  1032. $this->disciplines->removeElement($discipline);
  1033. return $this;
  1034. }
  1035. public function getPaymentStatus(): ?string
  1036. {
  1037. return $this->paymentStatus;
  1038. }
  1039. public function setPaymentStatus($balanceStatus): self
  1040. {
  1041. $this->paymentStatus = $balanceStatus;
  1042. return $this;
  1043. }
  1044. /**
  1045. * @return Collection|TeacherDisciplineClass[]
  1046. */
  1047. public function getTeacherDisciplineClasses(): Collection
  1048. {
  1049. return $this->teacherDisciplineClasses;
  1050. }
  1051. public function addTeacherDisciplineClass(TeacherDisciplineClass $teacherDisciplineClass): self
  1052. {
  1053. if (!$this->teacherDisciplineClasses->contains($teacherDisciplineClass)) {
  1054. $this->teacherDisciplineClasses[] = $teacherDisciplineClass;
  1055. $teacherDisciplineClass->setTeacher($this);
  1056. }
  1057. return $this;
  1058. }
  1059. public function removeTeacherDisciplineClass(TeacherDisciplineClass $teacherDisciplineClass): self
  1060. {
  1061. if ($this->teacherDisciplineClasses->removeElement($teacherDisciplineClass)) {
  1062. // set the owning side to null (unless already changed)
  1063. if ($teacherDisciplineClass->getTeacher() === $this) {
  1064. $teacherDisciplineClass->setTeacher(null);
  1065. }
  1066. }
  1067. return $this;
  1068. }
  1069. /**
  1070. * @return Collection|TeacherPriceChange[]
  1071. */
  1072. public function getTeacherPriceChanges(): Collection
  1073. {
  1074. return $this->teacherPriceChanges;
  1075. }
  1076. public function addTeacherPriceChange(TeacherPriceChange $teacherPriceChange): self
  1077. {
  1078. if (!$this->teacherPriceChanges->contains($teacherPriceChange)) {
  1079. $this->teacherPriceChanges[] = $teacherPriceChange;
  1080. $teacherPriceChange->setTeacher($this);
  1081. }
  1082. return $this;
  1083. }
  1084. public function removeTeacherPriceChange(TeacherPriceChange $teacherPriceChange): self
  1085. {
  1086. if ($this->teacherPriceChanges->removeElement($teacherPriceChange)) {
  1087. // set the owning side to null (unless already changed)
  1088. if ($teacherPriceChange->getTeacher() === $this) {
  1089. $teacherPriceChange->setTeacher(null);
  1090. }
  1091. }
  1092. return $this;
  1093. }
  1094. /**
  1095. * @return Collection|TeacherAvailabilityTime[]
  1096. */
  1097. public function getTeacherAvailabilityTimes(): Collection
  1098. {
  1099. return $this->teacherAvailabilityTimes;
  1100. }
  1101. public function addTeacherAvailabilityTime(TeacherAvailabilityTime $teacherAvailabilityTime): self
  1102. {
  1103. if (!$this->teacherAvailabilityTimes->contains($teacherAvailabilityTime)) {
  1104. $this->teacherAvailabilityTimes[] = $teacherAvailabilityTime;
  1105. $teacherAvailabilityTime->setTeacher($this);
  1106. }
  1107. return $this;
  1108. }
  1109. public function removeTeacherAvailabilityTime(TeacherAvailabilityTime $teacherAvailabilityTime): self
  1110. {
  1111. if ($this->teacherAvailabilityTimes->removeElement($teacherAvailabilityTime)) {
  1112. // set the owning side to null (unless already changed)
  1113. if ($teacherAvailabilityTime->getTeacher() === $this) {
  1114. $teacherAvailabilityTime->setTeacher(null);
  1115. }
  1116. }
  1117. return $this;
  1118. }
  1119. public function getComment(): ?string
  1120. {
  1121. return $this->comment;
  1122. }
  1123. public function setComment(?string $comment): self
  1124. {
  1125. $this->comment = $comment;
  1126. return $this;
  1127. }
  1128. /**
  1129. * @return Collection|GuardianSurveyResponse[]
  1130. */
  1131. public function getGuardianSurveyResponses(): Collection
  1132. {
  1133. return $this->guardianSurveyResponses;
  1134. }
  1135. public function addGuardianSurveyResponse(GuardianSurveyResponse $guardianSurveyResponse): self
  1136. {
  1137. if (!$this->guardianSurveyResponses->contains($guardianSurveyResponse)) {
  1138. $this->guardianSurveyResponses[] = $guardianSurveyResponse;
  1139. $guardianSurveyResponse->setTeacher($this);
  1140. }
  1141. return $this;
  1142. }
  1143. public function removeGuardianSurveyResponse(GuardianSurveyResponse $guardianSurveyResponse): self
  1144. {
  1145. if ($this->guardianSurveyResponses->removeElement($guardianSurveyResponse)) {
  1146. // set the owning side to null (unless already changed)
  1147. if ($guardianSurveyResponse->getTeacher() === $this) {
  1148. $guardianSurveyResponse->setTeacher(null);
  1149. }
  1150. }
  1151. return $this;
  1152. }
  1153. public function getShortName(): ?string
  1154. {
  1155. return $this->shortName;
  1156. }
  1157. public function setShortName(?string $shortName): self
  1158. {
  1159. $this->shortName = $shortName;
  1160. return $this;
  1161. }
  1162. public function getSummer(): ?string
  1163. {
  1164. return $this->summer;
  1165. }
  1166. public function setSummer(?string $summer): self
  1167. {
  1168. $this->summer = $summer;
  1169. return $this;
  1170. }
  1171. /**
  1172. * @return Collection|TeacherSurvey[]
  1173. */
  1174. public function getTeacherSurveys(): Collection
  1175. {
  1176. return $this->teacherSurveys;
  1177. }
  1178. public function addTeacherSurvey(TeacherSurvey $teacherSurvey): self
  1179. {
  1180. if (!$this->teacherSurveys->contains($teacherSurvey)) {
  1181. $this->teacherSurveys[] = $teacherSurvey;
  1182. $teacherSurvey->setTeacher($this);
  1183. }
  1184. return $this;
  1185. }
  1186. public function removeTeacherSurvey(TeacherSurvey $teacherSurvey): self
  1187. {
  1188. if ($this->teacherSurveys->removeElement($teacherSurvey)) {
  1189. // set the owning side to null (unless already changed)
  1190. if ($teacherSurvey->getTeacher() === $this) {
  1191. $teacherSurvey->setTeacher(null);
  1192. }
  1193. }
  1194. return $this;
  1195. }
  1196. /**
  1197. * @return Collection|TeacherSurveyResponse[]
  1198. */
  1199. public function getTeacherSurveyResponses(): Collection
  1200. {
  1201. return $this->teacherSurveyResponses;
  1202. }
  1203. public function addTeacherSurveyResponse(TeacherSurveyResponse $teacherSurveyResponse): self
  1204. {
  1205. if (!$this->teacherSurveyResponses->contains($teacherSurveyResponse)) {
  1206. $this->teacherSurveyResponses[] = $teacherSurveyResponse;
  1207. $teacherSurveyResponse->setTeacher($this);
  1208. }
  1209. return $this;
  1210. }
  1211. public function removeTeacherSurveyResponse(TeacherSurveyResponse $teacherSurveyResponse): self
  1212. {
  1213. if ($this->teacherSurveyResponses->removeElement($teacherSurveyResponse)) {
  1214. // set the owning side to null (unless already changed)
  1215. if ($teacherSurveyResponse->getTeacher() === $this) {
  1216. $teacherSurveyResponse->setTeacher(null);
  1217. }
  1218. }
  1219. return $this;
  1220. }
  1221. public function getShowSurvey(): ?bool
  1222. {
  1223. return $this->showSurvey;
  1224. }
  1225. public function setShowSurvey(?bool $showSurvey): self
  1226. {
  1227. $this->showSurvey = $showSurvey;
  1228. return $this;
  1229. }
  1230. public function getShortDescription(): ?string
  1231. {
  1232. return $this->shortDescription;
  1233. }
  1234. public function setShortDescription(?string $shortDescription): self
  1235. {
  1236. $this->shortDescription = $shortDescription;
  1237. return $this;
  1238. }
  1239. public function getDiscordName(): ?string
  1240. {
  1241. return $this->discordName;
  1242. }
  1243. public function setDiscordName(?string $discordName): self
  1244. {
  1245. $this->discordName = $discordName;
  1246. return $this;
  1247. }
  1248. public function getBlockNextDayLessonsReminders(): ?bool
  1249. {
  1250. return $this->blockNextDayLessonsReminders;
  1251. }
  1252. public function setBlockNextDayLessonsReminders(?bool $blockNextDayLessonsReminders): self
  1253. {
  1254. $this->blockNextDayLessonsReminders = $blockNextDayLessonsReminders;
  1255. return $this;
  1256. }
  1257. public function getBlockTodayLessonsReminders(): ?bool
  1258. {
  1259. return $this->blockTodayLessonsReminders;
  1260. }
  1261. public function setBlockTodayLessonsReminders(?bool $blockTodayLessonsReminders): self
  1262. {
  1263. $this->blockTodayLessonsReminders = $blockTodayLessonsReminders;
  1264. return $this;
  1265. }
  1266. public function getLevelInfo()
  1267. {
  1268. $totalHours = $this->workedHours;
  1269. $levelName = $this->levelName;
  1270. $currentLevel = null;
  1271. $nextLevel = null;
  1272. foreach (self::LEVELS as $key => $level) {
  1273. if ($level['name'] == $levelName) {
  1274. $currentLevel = self::LEVELS[$key];
  1275. if(isset(self::LEVELS[$key + 1])) {
  1276. $nextLevel = self::LEVELS[$key + 1];
  1277. }
  1278. }
  1279. }
  1280. $levelInfo = [
  1281. 'totalHours' => $totalHours,
  1282. 'name' => $currentLevel['name'],
  1283. 'hourlyImpact' => $currentLevel['hourlyImpact'],
  1284. 'hourlyRateNow' => $currentLevel['hourlyRate'],
  1285. 'hourlyRateNext' => $nextLevel ? $nextLevel['hourlyRate'] : '---',
  1286. 'currentLevelMinHours' => $currentLevel['hoursMin'],
  1287. 'currentLevelMaxHours' => $currentLevel['hoursMax'],
  1288. 'hoursForNextLevel' => $currentLevel['hoursMax'] - $currentLevel['hoursMin'],
  1289. 'hoursRemainingForNextLevel' => ($currentLevel['hoursMax'] - $currentLevel['hoursMin']) - ($totalHours - $currentLevel['hoursMin'] >= 0 ? $totalHours - $currentLevel['hoursMin'] : $totalHours),
  1290. // 'hoursRemainingForNextLevel' => $currentLevel['hoursMax'] - $totalHours,
  1291. 'hoursCompletedForNextLevel' => $totalHours - $currentLevel['hoursMin'] >= 0 ? $totalHours - $currentLevel['hoursMin'] : $totalHours,
  1292. 'completedPercent' => round(($totalHours - $currentLevel['hoursMin'] >= 0 ? $totalHours - $currentLevel['hoursMin'] : $totalHours) / ($currentLevel['hoursMax'] - $currentLevel['hoursMin']) * 100,0),
  1293. 'badge' => $currentLevel['badge']
  1294. ];
  1295. return $levelInfo;
  1296. }
  1297. public function getWorkedHours(): ?float
  1298. {
  1299. return $this->workedHours;
  1300. }
  1301. public function setWorkedHours(?float $workedHours): self
  1302. {
  1303. $this->workedHours = $workedHours;
  1304. return $this;
  1305. }
  1306. public function getWorkedHoursMarch(): ?float
  1307. {
  1308. return $this->workedHoursMarch;
  1309. }
  1310. public function setWorkedHoursMarch(?float $workedHoursMarch): self
  1311. {
  1312. $this->workedHoursMarch = $workedHoursMarch;
  1313. return $this;
  1314. }
  1315. public function getLevelName(): ?string
  1316. {
  1317. return $this->levelName;
  1318. }
  1319. public function setLevelName(?string $levelName): self
  1320. {
  1321. $this->levelName = $levelName;
  1322. return $this;
  1323. }
  1324. /**
  1325. * @return Collection|TeacherHo+liday[]
  1326. */
  1327. public function getTeacherHolidays(): Collection
  1328. {
  1329. return $this->teacherHolidays;
  1330. }
  1331. public function addTeacherHoliday(TeacherHoliday $teacherHoliday): self
  1332. {
  1333. if (!$this->teacherHolidays->contains($teacherHoliday)) {
  1334. $this->teacherHolidays[] = $teacherHoliday;
  1335. $teacherHoliday->setTeacher($this);
  1336. }
  1337. return $this;
  1338. }
  1339. public function removeTeacherHoliday(TeacherHoliday $teacherHoliday): self
  1340. {
  1341. if ($this->teacherHolidays->removeElement($teacherHoliday)) {
  1342. // set the owning side to null (unless already changed)
  1343. if ($teacherHoliday->getTeacher() === $this) {
  1344. $teacherHoliday->setTeacher(null);
  1345. }
  1346. }
  1347. return $this;
  1348. }
  1349. public function getLessonsMissed(): ?int
  1350. {
  1351. return $this->lessonsMissed;
  1352. }
  1353. public function setLessonsMissed(?int $lessonsMissed): self
  1354. {
  1355. $this->lessonsMissed = $lessonsMissed;
  1356. return $this;
  1357. }
  1358. public function getWarningDate(): ?\DateTimeInterface
  1359. {
  1360. return $this->warningDate;
  1361. }
  1362. public function setWarningDate(?\DateTimeInterface $warningDate): self
  1363. {
  1364. $this->warningDate = $warningDate;
  1365. return $this;
  1366. }
  1367. public function getFlagRU(): ?bool
  1368. {
  1369. return $this->flagRU;
  1370. }
  1371. public function setFlagRU(?bool $flagRU): self
  1372. {
  1373. $this->flagRU = $flagRU;
  1374. return $this;
  1375. }
  1376. public function getFlagPL(): ?bool
  1377. {
  1378. return $this->flagPL;
  1379. }
  1380. public function setFlagPL(?bool $flagPL): self
  1381. {
  1382. $this->flagPL = $flagPL;
  1383. return $this;
  1384. }
  1385. public function getFlagENG(): ?bool
  1386. {
  1387. return $this->flagENG;
  1388. }
  1389. public function setFlagENG(?bool $flagENG): self
  1390. {
  1391. $this->flagENG = $flagENG;
  1392. return $this;
  1393. }
  1394. public function getFlagIB(): ?bool
  1395. {
  1396. return $this->flagIB;
  1397. }
  1398. public function setFlagIB(?bool $flagIB): self
  1399. {
  1400. $this->flagIB = $flagIB;
  1401. return $this;
  1402. }
  1403. public function getFlagDyslexia(): ?bool
  1404. {
  1405. return $this->flagDyslexia;
  1406. }
  1407. public function setFlagDyslexia(?bool $flagDyslexia): self
  1408. {
  1409. $this->flagDyslexia = $flagDyslexia;
  1410. return $this;
  1411. }
  1412. public function getFlagSensitive(): ?bool
  1413. {
  1414. return $this->flagSensitive;
  1415. }
  1416. public function setFlagSensitive(?bool $flagSensitive): self
  1417. {
  1418. $this->flagSensitive = $flagSensitive;
  1419. return $this;
  1420. }
  1421. public function getFlagTrial(): ?bool
  1422. {
  1423. return $this->flagTrial;
  1424. }
  1425. public function setFlagTrial(?bool $flagTrial): self
  1426. {
  1427. $this->flagTrial = $flagTrial;
  1428. return $this;
  1429. }
  1430. public function getExtraLoad(): ?string
  1431. {
  1432. return $this->extraLoad;
  1433. }
  1434. public function setExtraLoad(?string $extraLoad): self
  1435. {
  1436. $this->extraLoad = $extraLoad;
  1437. return $this;
  1438. }
  1439. /**
  1440. * @return Collection<int, LessonLearncubeLog>
  1441. */
  1442. public function getLessonLearncubeLogs(): Collection
  1443. {
  1444. return $this->lessonLearncubeLogs;
  1445. }
  1446. public function addLessonLearncubeLog(LessonLearncubeLog $lessonLearncubeLog): self
  1447. {
  1448. if (!$this->lessonLearncubeLogs->contains($lessonLearncubeLog)) {
  1449. $this->lessonLearncubeLogs[] = $lessonLearncubeLog;
  1450. $lessonLearncubeLog->setTeacher($this);
  1451. }
  1452. return $this;
  1453. }
  1454. public function removeLessonLearncubeLog(LessonLearncubeLog $lessonLearncubeLog): self
  1455. {
  1456. if ($this->lessonLearncubeLogs->removeElement($lessonLearncubeLog)) {
  1457. // set the owning side to null (unless already changed)
  1458. if ($lessonLearncubeLog->getTeacher() === $this) {
  1459. $lessonLearncubeLog->setTeacher(null);
  1460. }
  1461. }
  1462. return $this;
  1463. }
  1464. public function getAdminComment(): ?string
  1465. {
  1466. return $this->adminComment;
  1467. }
  1468. public function setAdminComment(?string $adminComment): self
  1469. {
  1470. $this->adminComment = $adminComment;
  1471. return $this;
  1472. }
  1473. public function getEducationStage(): ?string
  1474. {
  1475. return $this->educationStage;
  1476. }
  1477. public function setEducationStage(?string $educationStage): self
  1478. {
  1479. $this->educationStage = $educationStage;
  1480. return $this;
  1481. }
  1482. /**
  1483. * @return Collection<int, ChildPreferenceDeclineHistory>
  1484. */
  1485. public function getChildPreferenceDeclineHistories(): Collection
  1486. {
  1487. return $this->childPreferenceDeclineHistories;
  1488. }
  1489. public function addChildPreferenceDeclineHistory(ChildPreferenceDeclineHistory $childPreferenceDeclineHistory): self
  1490. {
  1491. if (!$this->childPreferenceDeclineHistories->contains($childPreferenceDeclineHistory)) {
  1492. $this->childPreferenceDeclineHistories[] = $childPreferenceDeclineHistory;
  1493. $childPreferenceDeclineHistory->setTeacher($this);
  1494. }
  1495. return $this;
  1496. }
  1497. public function removeChildPreferenceDeclineHistory(ChildPreferenceDeclineHistory $childPreferenceDeclineHistory): self
  1498. {
  1499. if ($this->childPreferenceDeclineHistories->removeElement($childPreferenceDeclineHistory)) {
  1500. // set the owning side to null (unless already changed)
  1501. if ($childPreferenceDeclineHistory->getTeacher() === $this) {
  1502. $childPreferenceDeclineHistory->setTeacher(null);
  1503. }
  1504. }
  1505. return $this;
  1506. }
  1507. /**
  1508. * @return Collection<int, TeacherHoursBonus>
  1509. */
  1510. public function getTeacherHoursBonuses(): Collection
  1511. {
  1512. return $this->teacherHoursBonuses;
  1513. }
  1514. public function addTeacherHoursBonus(TeacherHoursBonus $teacherHoursBonus): self
  1515. {
  1516. if (!$this->teacherHoursBonuses->contains($teacherHoursBonus)) {
  1517. $this->teacherHoursBonuses[] = $teacherHoursBonus;
  1518. $teacherHoursBonus->setTeacher($this);
  1519. }
  1520. return $this;
  1521. }
  1522. public function removeTeacherHoursBonus(TeacherHoursBonus $teacherHoursBonus): self
  1523. {
  1524. if ($this->teacherHoursBonuses->removeElement($teacherHoursBonus)) {
  1525. // set the owning side to null (unless already changed)
  1526. if ($teacherHoursBonus->getTeacher() === $this) {
  1527. $teacherHoursBonus->setTeacher(null);
  1528. }
  1529. }
  1530. return $this;
  1531. }
  1532. /**
  1533. * @return Collection<int, TeacherTablet>
  1534. */
  1535. public function getTeacherTablets(): Collection
  1536. {
  1537. return $this->teacherTablets;
  1538. }
  1539. public function addTeacherTablet(TeacherTablet $teacherTablet): self
  1540. {
  1541. if (!$this->teacherTablets->contains($teacherTablet)) {
  1542. $this->teacherTablets[] = $teacherTablet;
  1543. $teacherTablet->setTeacher($this);
  1544. }
  1545. return $this;
  1546. }
  1547. public function removeTeacherTablet(TeacherTablet $teacherTablet): self
  1548. {
  1549. if ($this->teacherTablets->removeElement($teacherTablet)) {
  1550. // set the owning side to null (unless already changed)
  1551. if ($teacherTablet->getTeacher() === $this) {
  1552. $teacherTablet->setTeacher(null);
  1553. }
  1554. }
  1555. return $this;
  1556. }
  1557. public function getLcFrom(): ?\DateTimeInterface
  1558. {
  1559. return $this->lcFrom;
  1560. }
  1561. public function setLcFrom(?\DateTimeInterface $lcFrom): self
  1562. {
  1563. $this->lcFrom = $lcFrom;
  1564. return $this;
  1565. }
  1566. /**
  1567. * @return Collection<int, TeacherUnavailableRange>
  1568. */
  1569. public function getTeacherUnavailableRanges($withDeleted = false): Collection
  1570. {
  1571. if(!$withDeleted) {
  1572. foreach ($this->teacherUnavailableRanges as $key => $teacherUnavailableRange) {
  1573. if ($teacherUnavailableRange->isIsDeleted()) {
  1574. unset($this->teacherUnavailableRanges[$key]);
  1575. }
  1576. }
  1577. }
  1578. return $this->teacherUnavailableRanges;
  1579. }
  1580. public function addTeacherUnavailableRange(TeacherUnavailableRange $teacherUnavailableRange): self
  1581. {
  1582. if (!$this->teacherUnavailableRanges->contains($teacherUnavailableRange)) {
  1583. $this->teacherUnavailableRanges[] = $teacherUnavailableRange;
  1584. $teacherUnavailableRange->setTeacher($this);
  1585. }
  1586. return $this;
  1587. }
  1588. public function removeTeacherUnavailableRange(TeacherUnavailableRange $teacherUnavailableRange): self
  1589. {
  1590. if ($this->teacherUnavailableRanges->removeElement($teacherUnavailableRange)) {
  1591. // set the owning side to null (unless already changed)
  1592. if ($teacherUnavailableRange->getTeacher() === $this) {
  1593. $teacherUnavailableRange->setTeacher(null);
  1594. }
  1595. }
  1596. return $this;
  1597. }
  1598. public function getContractTerminateReason(): ?string
  1599. {
  1600. return $this->contractTerminateReason;
  1601. }
  1602. public function setContractTerminateReason(?string $contractTerminateReason): self
  1603. {
  1604. $this->contractTerminateReason = $contractTerminateReason;
  1605. return $this;
  1606. }
  1607. public function getContractTerminateFee(): ?float
  1608. {
  1609. return $this->contractTerminateFee;
  1610. }
  1611. public function setContractTerminateFee(?float $contractTerminateFee): self
  1612. {
  1613. $this->contractTerminateFee = $contractTerminateFee;
  1614. return $this;
  1615. }
  1616. public function isContractTerminateFeePaid(): ?bool
  1617. {
  1618. return $this->contractTerminateFeePaid;
  1619. }
  1620. public function setContractTerminateFeePaid(?bool $contractTerminateFeePaid): self
  1621. {
  1622. $this->contractTerminateFeePaid = $contractTerminateFeePaid;
  1623. return $this;
  1624. }
  1625. public function isUnickoFunction(): ?bool
  1626. {
  1627. return $this->unickoFunction;
  1628. }
  1629. public function getUnickoFunction(): ?bool
  1630. {
  1631. return $this->unickoFunction;
  1632. }
  1633. public function setUnickoFunction(?bool $unickoFunction): self
  1634. {
  1635. $this->unickoFunction = $unickoFunction;
  1636. return $this;
  1637. }
  1638. public function getTeacherRegister(): ?TeacherRegister
  1639. {
  1640. return $this->teacherRegister;
  1641. }
  1642. public function setTeacherRegister(?TeacherRegister $teacherRegister): self
  1643. {
  1644. // unset the owning side of the relation if necessary
  1645. if ($teacherRegister === null && $this->teacherRegister !== null) {
  1646. $this->teacherRegister->setTeacher(null);
  1647. }
  1648. // set the owning side of the relation if necessary
  1649. if ($teacherRegister !== null && $teacherRegister->getTeacher() !== $this) {
  1650. $teacherRegister->setTeacher($this);
  1651. }
  1652. $this->teacherRegister = $teacherRegister;
  1653. return $this;
  1654. }
  1655. public function getBirthday(): ?\DateTimeInterface
  1656. {
  1657. return $this->birthday;
  1658. }
  1659. public function setBirthday(?\DateTimeInterface $birthday): self
  1660. {
  1661. $this->birthday = $birthday;
  1662. return $this;
  1663. }
  1664. public function getIndividualWorkFilePath(): ?string
  1665. {
  1666. return $this->individualWorkFilePath;
  1667. }
  1668. public function setIndividualWorkFilePath(?string $individualWorkFilePath): self
  1669. {
  1670. $this->individualWorkFilePath = $individualWorkFilePath;
  1671. return $this;
  1672. }
  1673. public function getCountry(): ?string
  1674. {
  1675. return $this->country;
  1676. }
  1677. public function setCountry(?string $country): self
  1678. {
  1679. $this->country = $country;
  1680. return $this;
  1681. }
  1682. public function isSummerTime(): ?bool
  1683. {
  1684. return $this->summerTime;
  1685. }
  1686. public function setSummerTime(?bool $summerTime): self
  1687. {
  1688. $this->summerTime = $summerTime;
  1689. return $this;
  1690. }
  1691. public function getStudyField(): ?string
  1692. {
  1693. return $this->studyField;
  1694. }
  1695. public function setStudyField(?string $studyField): self
  1696. {
  1697. $this->studyField = $studyField;
  1698. return $this;
  1699. }
  1700. public function isCongratulatedBirthday(): ?bool
  1701. {
  1702. return $this->congratulatedBirthday !== null;
  1703. }
  1704. public function setCongratulatedBirthday(?\DateTimeInterface $congratulatedBirthday): self
  1705. {
  1706. $this->congratulatedBirthday = $congratulatedBirthday;
  1707. return $this;
  1708. }
  1709. public function getCongratulatedBirthday(): ?\DateTimeInterface
  1710. {
  1711. return $this->congratulatedBirthday;
  1712. }
  1713. public function getGoogleRefreshToken(): ?string
  1714. {
  1715. return $this->googleRefreshToken;
  1716. }
  1717. public function setGoogleRefreshToken(?string $googleRefreshToken): self
  1718. {
  1719. $this->googleRefreshToken = $googleRefreshToken;
  1720. return $this;
  1721. }
  1722. public function getGoogleAccessToken(): ?array
  1723. {
  1724. return $this->googleAccessToken;
  1725. }
  1726. public function setGoogleAccessToken(?array $googleAccessToken): self
  1727. {
  1728. $this->googleAccessToken = $googleAccessToken;
  1729. return $this;
  1730. }
  1731. public function getThreemaPassword(): ?string
  1732. {
  1733. return $this->threemaPassword;
  1734. }
  1735. public function setThreemaPassword(?string $threemaPassword): self
  1736. {
  1737. $this->threemaPassword = $threemaPassword;
  1738. return $this;
  1739. }
  1740. public function getThreemaId(): ?string
  1741. {
  1742. return $this->threemaId;
  1743. }
  1744. public function setThreemaId(?string $threemaId): self
  1745. {
  1746. $this->threemaId = $threemaId;
  1747. return $this;
  1748. }
  1749. public function getThreemaStatus(): ?string
  1750. {
  1751. return $this->threemaStatus;
  1752. }
  1753. public function setThreemaStatus(?string $threemaStatus): self
  1754. {
  1755. $this->threemaStatus = $threemaStatus;
  1756. return $this;
  1757. }
  1758. public function getThreemaGroup(): ?string
  1759. {
  1760. return $this->threemaGroup;
  1761. }
  1762. public function setThreemaGroup(?string $threemaGroup): self
  1763. {
  1764. $this->threemaGroup = $threemaGroup;
  1765. return $this;
  1766. }
  1767. public function isTrainingStarted(): ?bool
  1768. {
  1769. return $this->trainingStarted;
  1770. }
  1771. public function setTrainingStarted(?bool $trainingStarted): self
  1772. {
  1773. $this->trainingStarted = $trainingStarted;
  1774. return $this;
  1775. }
  1776. public function isTrainingEnded(): ?bool
  1777. {
  1778. return $this->trainingEnded;
  1779. }
  1780. public function setTrainingEnded(?bool $trainingEnded): self
  1781. {
  1782. $this->trainingEnded = $trainingEnded;
  1783. return $this;
  1784. }
  1785. public function getReferralCode(): ?string
  1786. {
  1787. return $this->referralCode;
  1788. }
  1789. public function setReferralCode(?string $referralCode): self
  1790. {
  1791. $this->referralCode = $referralCode;
  1792. return $this;
  1793. }
  1794. public function getSchool(): ?string
  1795. {
  1796. return $this->school;
  1797. }
  1798. public function setSchool(?string $school): self
  1799. {
  1800. $this->school = $school;
  1801. return $this;
  1802. }
  1803. public function getIelts(): ?int
  1804. {
  1805. return $this->ielts;
  1806. }
  1807. public function setIelts(?int $ielts): self
  1808. {
  1809. $this->ielts = $ielts;
  1810. return $this;
  1811. }
  1812. /**
  1813. * @return Collection<int, TeacherSickLeaves>
  1814. */
  1815. public function getTeacherSickLeaves(): Collection
  1816. {
  1817. return $this->teacherSickLeaves;
  1818. }
  1819. public function addTeacherSickLeaf(TeacherSickLeaves $teacherSickLeaf): self
  1820. {
  1821. if (!$this->teacherSickLeaves->contains($teacherSickLeaf)) {
  1822. $this->teacherSickLeaves[] = $teacherSickLeaf;
  1823. $teacherSickLeaf->setTeacher($this);
  1824. }
  1825. return $this;
  1826. }
  1827. public function removeTeacherSickLeaf(TeacherSickLeaves $teacherSickLeaf): self
  1828. {
  1829. if ($this->teacherSickLeaves->removeElement($teacherSickLeaf)) {
  1830. // set the owning side to null (unless already changed)
  1831. if ($teacherSickLeaf->getTeacher() === $this) {
  1832. $teacherSickLeaf->setTeacher(null);
  1833. }
  1834. }
  1835. return $this;
  1836. }
  1837. public function getPersonalIdentificationNumber(): ?string
  1838. {
  1839. return $this->personalIdentificationNumber;
  1840. }
  1841. public function setPersonalIdentificationNumber(?string $personalIdentificationNumber): self
  1842. {
  1843. $this->personalIdentificationNumber = $personalIdentificationNumber;
  1844. return $this;
  1845. }
  1846. /**
  1847. * @return Collection<int, TeacherPaymentBonusProposal>
  1848. */
  1849. public function getTeacherPaymentBonusProposals(): Collection
  1850. {
  1851. return $this->teacherPaymentBonusProposals;
  1852. }
  1853. public function addTeacherPaymentBonusProposal(TeacherPaymentBonusProposal $teacherPaymentBonusProposal): self
  1854. {
  1855. if (!$this->teacherPaymentBonusProposals->contains($teacherPaymentBonusProposal)) {
  1856. $this->teacherPaymentBonusProposals[] = $teacherPaymentBonusProposal;
  1857. $teacherPaymentBonusProposal->setTeacher($this);
  1858. }
  1859. return $this;
  1860. }
  1861. public function removeTeacherPaymentBonusProposal(TeacherPaymentBonusProposal $teacherPaymentBonusProposal): self
  1862. {
  1863. if ($this->teacherPaymentBonusProposals->removeElement($teacherPaymentBonusProposal)) {
  1864. // set the owning side to null (unless already changed)
  1865. if ($teacherPaymentBonusProposal->getTeacher() === $this) {
  1866. $teacherPaymentBonusProposal->setTeacher(null);
  1867. }
  1868. }
  1869. return $this;
  1870. }
  1871. /**
  1872. * @return Collection<int, Tablet>
  1873. */
  1874. public function getTablets(): Collection
  1875. {
  1876. return $this->tablets;
  1877. }
  1878. public function addTablet(Tablet $tablet): self
  1879. {
  1880. if (!$this->tablets->contains($tablet)) {
  1881. $this->tablets[] = $tablet;
  1882. $tablet->setTeacher($this);
  1883. }
  1884. return $this;
  1885. }
  1886. public function removeTablet(Tablet $tablet): self
  1887. {
  1888. if ($this->tablets->removeElement($tablet)) {
  1889. // set the owning side to null (unless already changed)
  1890. if ($tablet->getTeacher() === $this) {
  1891. $tablet->setTeacher(null);
  1892. }
  1893. }
  1894. return $this;
  1895. }
  1896. /**
  1897. * @return Collection<int, WoltCoupon>
  1898. */
  1899. public function getWoltCoupons(): Collection
  1900. {
  1901. return $this->woltCoupons;
  1902. }
  1903. public function addWoltCoupon(WoltCoupon $woltCoupon): self
  1904. {
  1905. if (!$this->woltCoupons->contains($woltCoupon)) {
  1906. $this->woltCoupons[] = $woltCoupon;
  1907. $woltCoupon->setTeacher($this);
  1908. }
  1909. return $this;
  1910. }
  1911. public function removeWoltCoupon(WoltCoupon $woltCoupon): self
  1912. {
  1913. if ($this->woltCoupons->removeElement($woltCoupon)) {
  1914. // set the owning side to null (unless already changed)
  1915. if ($woltCoupon->getTeacher() === $this) {
  1916. $woltCoupon->setTeacher(null);
  1917. }
  1918. }
  1919. return $this;
  1920. }
  1921. public function isFlagWeb(): ?bool
  1922. {
  1923. return $this->flagWeb;
  1924. }
  1925. public function setFlagWeb(?bool $flagWeb): self
  1926. {
  1927. $this->flagWeb = $flagWeb;
  1928. return $this;
  1929. }
  1930. public function isFlagStrict(): ?bool
  1931. {
  1932. return $this->flagStrict;
  1933. }
  1934. public function setFlagStrict(?bool $flagStrict): self
  1935. {
  1936. $this->flagStrict = $flagStrict;
  1937. return $this;
  1938. }
  1939. public function getGender(): ?string
  1940. {
  1941. return $this->gender;
  1942. }
  1943. public function setGender(?string $gender): self
  1944. {
  1945. $this->gender = $gender;
  1946. return $this;
  1947. }
  1948. public function isFlagExperienceAtSchool(): ?bool
  1949. {
  1950. return $this->flagExperienceAtSchool;
  1951. }
  1952. public function setFlagExperienceAtSchool(?bool $flagExperienceAtSchool): self
  1953. {
  1954. $this->flagExperienceAtSchool = $flagExperienceAtSchool;
  1955. return $this;
  1956. }
  1957. public function isFlagPriorityAssignment(): ?bool
  1958. {
  1959. return $this->flagPriorityAssignment;
  1960. }
  1961. public function setFlagPriorityAssignment(?bool $flagPriorityAssignment): self
  1962. {
  1963. $this->flagPriorityAssignment = $flagPriorityAssignment;
  1964. return $this;
  1965. }
  1966. public function getTeacherPreference(): ?TeacherPreference
  1967. {
  1968. return $this->teacherPreference;
  1969. }
  1970. public function setTeacherPreference(?TeacherPreference $teacherPreference): self
  1971. {
  1972. // unset the owning side of the relation if necessary
  1973. if ($teacherPreference === null && $this->teacherPreference !== null) {
  1974. $this->teacherPreference->setTeacher(null);
  1975. }
  1976. // set the owning side of the relation if necessary
  1977. if ($teacherPreference !== null && $teacherPreference->getTeacher() !== $this) {
  1978. $teacherPreference->setTeacher($this);
  1979. }
  1980. $this->teacherPreference = $teacherPreference;
  1981. return $this;
  1982. }
  1983. public function getNewContractMarksignUrl(): ?string
  1984. {
  1985. return $this->newContractMarksignUrl;
  1986. }
  1987. public function setNewContractMarksignUrl(?string $newContractMarksignUrl): self
  1988. {
  1989. $this->newContractMarksignUrl = $newContractMarksignUrl;
  1990. return $this;
  1991. }
  1992. public function isNewCotractSigned(): ?bool
  1993. {
  1994. return $this->newCotractSigned;
  1995. }
  1996. public function setNewCotractSigned(?bool $newCotractSigned): self
  1997. {
  1998. $this->newCotractSigned = $newCotractSigned;
  1999. return $this;
  2000. }
  2001. public function getNewContractMarksignDocumentId(): ?string
  2002. {
  2003. return $this->newContractMarksignDocumentId;
  2004. }
  2005. public function setNewContractMarksignDocumentId(?string $newContractMarksignDocumentId): self
  2006. {
  2007. $this->newContractMarksignDocumentId = $newContractMarksignDocumentId;
  2008. return $this;
  2009. }
  2010. public function getNewContractSignedUrl(): ?string
  2011. {
  2012. return $this->newContractSignedUrl;
  2013. }
  2014. public function setNewContractSignedUrl(?string $newContractSignedUrl): self
  2015. {
  2016. $this->newContractSignedUrl = $newContractSignedUrl;
  2017. return $this;
  2018. }
  2019. public function getNewContractType(): ?string
  2020. {
  2021. return $this->newContractType;
  2022. }
  2023. public function setNewContractType(?string $newContractType): self
  2024. {
  2025. $this->newContractType = $newContractType;
  2026. return $this;
  2027. }
  2028. public function getSummerAt(): ?\DateTimeInterface
  2029. {
  2030. return $this->summerAt;
  2031. }
  2032. public function setSummerAt(?\DateTimeInterface $summerAt): self
  2033. {
  2034. $this->summerAt = $summerAt;
  2035. return $this;
  2036. }
  2037. public function isFlagOnlyIB(): ?bool
  2038. {
  2039. return $this->flagOnlyIB;
  2040. }
  2041. public function setFlagOnlyIB(?bool $flagOnlyIB): self
  2042. {
  2043. $this->flagOnlyIB = $flagOnlyIB;
  2044. return $this;
  2045. }
  2046. public function isFlagAutoAcceptAssignment(): ?bool
  2047. {
  2048. return $this->flagAutoAcceptAssignment;
  2049. }
  2050. public function setFlagAutoAcceptAssignment(?bool $flagAutoAcceptAssignment): self
  2051. {
  2052. $this->flagAutoAcceptAssignment = $flagAutoAcceptAssignment;
  2053. return $this;
  2054. }
  2055. public function getGapBetweenAssignments(): ?int
  2056. {
  2057. if($this->gapBetweenAssignments === null) {
  2058. return 5;
  2059. }
  2060. return $this->gapBetweenAssignments;
  2061. }
  2062. public function setGapBetweenAssignments(?int $gapBetweenAssignments): self
  2063. {
  2064. $this->gapBetweenAssignments = $gapBetweenAssignments;
  2065. return $this;
  2066. }
  2067. public function isFlagAutoAcceptAssignmentTeacher(): ?bool
  2068. {
  2069. return $this->flagAutoAcceptAssignmentTeacher;
  2070. }
  2071. public function setFlagAutoAcceptAssignmentTeacher(?bool $flagAutoAcceptAssignmentTeacher): self
  2072. {
  2073. $this->flagAutoAcceptAssignmentTeacher = $flagAutoAcceptAssignmentTeacher;
  2074. return $this;
  2075. }
  2076. public function getGapBetweenAssignmentsTeacher(): ?int
  2077. {
  2078. return $this->gapBetweenAssignmentsTeacher;
  2079. }
  2080. public function setGapBetweenAssignmentsTeacher(?int $gapBetweenAssignmentsTeacher): self
  2081. {
  2082. $this->gapBetweenAssignmentsTeacher = $gapBetweenAssignmentsTeacher;
  2083. return $this;
  2084. }
  2085. public function getGapBetweenAssignmentsSubmittedAt(): ?\DateTimeInterface
  2086. {
  2087. return $this->gapBetweenAssignmentsSubmittedAt;
  2088. }
  2089. public function setGapBetweenAssignmentsSubmittedAt(?\DateTimeInterface $gapBetweenAssignmentsSubmittedAt): self
  2090. {
  2091. $this->gapBetweenAssignmentsSubmittedAt = $gapBetweenAssignmentsSubmittedAt;
  2092. return $this;
  2093. }
  2094. public function getChatStreamToken(): ?string
  2095. {
  2096. return $this->chatStreamToken;
  2097. }
  2098. public function setChatStreamToken(?string $chatStreamToken): self
  2099. {
  2100. $this->chatStreamToken = $chatStreamToken;
  2101. return $this;
  2102. }
  2103. public function getMaxLoadChangedAt(): ?\DateTimeInterface
  2104. {
  2105. return $this->maxLoadChangedAt;
  2106. }
  2107. public function setMaxLoadChangedAt(?\DateTimeInterface $maxLoadChangedAt): self
  2108. {
  2109. $this->maxLoadChangedAt = $maxLoadChangedAt;
  2110. return $this;
  2111. }
  2112. public function getMobileAppLastUsedAt(): ?\DateTimeInterface
  2113. {
  2114. return $this->mobileAppLastUsedAt;
  2115. }
  2116. public function setMobileAppLastUsedAt(?\DateTimeInterface $mobileAppLastUsedAt): self
  2117. {
  2118. $this->mobileAppLastUsedAt = $mobileAppLastUsedAt;
  2119. return $this;
  2120. }
  2121. /**
  2122. * @return mixed
  2123. */
  2124. public function getQrCode()
  2125. {
  2126. return $this->qrCode;
  2127. }
  2128. /**
  2129. * @param mixed $qrCode
  2130. */
  2131. public function setQrCode($qrCode): void
  2132. {
  2133. $this->qrCode = $qrCode;
  2134. }
  2135. /**
  2136. * @return Collection<int, ChatCensorshipJournal>
  2137. */
  2138. public function getChatCensorshipJournals(): Collection
  2139. {
  2140. return $this->chatCensorshipJournals;
  2141. }
  2142. public function addChatCensorshipJournal(ChatCensorshipJournal $chatCensorshipJournal): self
  2143. {
  2144. if (!$this->chatCensorshipJournals->contains($chatCensorshipJournal)) {
  2145. $this->chatCensorshipJournals[] = $chatCensorshipJournal;
  2146. $chatCensorshipJournal->setTeacher($this);
  2147. }
  2148. return $this;
  2149. }
  2150. public function removeChatCensorshipJournal(ChatCensorshipJournal $chatCensorshipJournal): self
  2151. {
  2152. if ($this->chatCensorshipJournals->removeElement($chatCensorshipJournal)) {
  2153. // set the owning side to null (unless already changed)
  2154. if ($chatCensorshipJournal->getTeacher() === $this) {
  2155. $chatCensorshipJournal->setTeacher(null);
  2156. }
  2157. }
  2158. return $this;
  2159. }
  2160. /**
  2161. * @return Collection<int, ChildLessonReview>
  2162. */
  2163. public function getChildLessonReviews(): Collection
  2164. {
  2165. return $this->childLessonReviews;
  2166. }
  2167. public function addChildLessonReview(ChildLessonReview $childLessonReview): self
  2168. {
  2169. if (!$this->childLessonReviews->contains($childLessonReview)) {
  2170. $this->childLessonReviews[] = $childLessonReview;
  2171. $childLessonReview->setTeacher($this);
  2172. }
  2173. return $this;
  2174. }
  2175. public function removeChildLessonReview(ChildLessonReview $childLessonReview): self
  2176. {
  2177. if ($this->childLessonReviews->removeElement($childLessonReview)) {
  2178. // set the owning side to null (unless already changed)
  2179. if ($childLessonReview->getTeacher() === $this) {
  2180. $childLessonReview->setTeacher(null);
  2181. }
  2182. }
  2183. return $this;
  2184. }
  2185. public function getTeacherPublicProfiles(): Collection
  2186. {
  2187. return $this->teacherPublicProfiles;
  2188. }
  2189. public function setTeacherPublicProfiles(Collection $teacherPublicProfiles): void
  2190. {
  2191. $this->teacherPublicProfiles = $teacherPublicProfiles;
  2192. }
  2193. }