src/Entity/Guardian.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\GuardianRegister\GuardianRegister;
  4. use App\Entity\Guardian\GuardianPriceDiscount;
  5. use App\Entity\Guardian\GuardianSMSResponse;
  6. use App\Entity\Marketing\MarketingCampaignData;
  7. use App\Repository\GuardianRepository;
  8. use Doctrine\Common\Collections\ArrayCollection;
  9. use Doctrine\Common\Collections\Collection;
  10. use Doctrine\ORM\Mapping as ORM;
  11. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  12. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  13. use Symfony\Component\Security\Core\User\UserInterface;
  14. use Symfony\Component\Serializer\Annotation\Groups;
  15. /**
  16. * @ORM\Entity(repositoryClass=GuardianRepository::class)
  17. * @ORM\Table(name="guardian", indexes={
  18. * @ORM\Index(name="g_email_phonenumber_status_idx", columns={"email", "phone_number", "status"}),
  19. * })
  20. * @UniqueEntity("email")
  21. */
  22. class Guardian implements UserInterface, PasswordAuthenticatedUserInterface
  23. {
  24. const STATUS_PREPARING = [
  25. 'value' => "PREPARING",
  26. 'text' => 'Ruošiama',
  27. 'color' => '#f8d7da'
  28. ];
  29. const STATUS_SENT = [
  30. 'value' => "SENT",
  31. 'text' => 'Išsiųsta',
  32. 'color' => '#fff3cd'
  33. ];
  34. const STATUS_CONFIRMED = [
  35. 'value' => "CONFIRMED",
  36. 'text' => 'Patvirtinta',
  37. 'color' => '#d4edda'
  38. ];
  39. const STATUS_CANCELLED = [
  40. 'value' => "CANCELLED",
  41. 'text' => 'Neaktyvus',
  42. 'color' => '#FF0000'
  43. ];
  44. const STATUS_LEFT = [
  45. 'value' => "LEFT",
  46. 'text' => 'Išėjęs',
  47. 'color' => '#ffa600'
  48. ];
  49. const STATUS_OVERPAID = [
  50. 'value' => "OVERPAID",
  51. 'text' => 'Permoka',
  52. 'color' => '#45C6F6'
  53. ];
  54. const GUARDIAN_STATUSES = [self::STATUS_PREPARING, self::STATUS_SENT, self::STATUS_CONFIRMED, self::STATUS_CANCELLED, self::STATUS_LEFT, self::STATUS_OVERPAID];
  55. /**
  56. * @ORM\Id
  57. * @ORM\GeneratedValue
  58. * @ORM\Column(type="integer")
  59. * @Groups({"CensorshipList","ResponsesList", "TeacherResponsesList", "GuardianRegisterList", "ChildPreferenceAssignmentList","LessonList", "NotificationList", "ChildPreferenceList", "AdminConfirmationsList"})
  60. */
  61. private $id;
  62. /**
  63. * @ORM\Column(type="string", length=255, nullable=true)
  64. * @Groups({"showme"})
  65. * @Groups({"GuardianList","ChildList","ResponsesList", "ChildPreferenceAssignmentList","LessonList", "NotificationList", "ChildPreferenceList"})
  66. */
  67. private $fullname;
  68. /**
  69. * @ORM\Column(type="string", length=180, nullable=true)
  70. * @Groups({"CensorshipList","showme","GuardianList","ChildList","ResponsesList", "ChildPreferenceAssignmentList","LessonList", "DeclineHistoryList", "NotificationList", "ChildPreferenceList", "AdminConfirmationsList"})
  71. */
  72. private $email;
  73. /**
  74. * @ORM\Column(type="json")
  75. */
  76. private $roles = [];
  77. /**
  78. * @var string The hashed password
  79. * @ORM\Column(type="string")
  80. */
  81. private $password;
  82. /**
  83. * @ORM\OneToMany(targetEntity=Child::class, mappedBy="guardian", cascade={"all"})
  84. * @Groups({"GuardianList"})
  85. */
  86. private $children;
  87. /**
  88. * @ORM\Column(type="string", length=255, nullable=true)
  89. * @Groups({"showme"})
  90. * @Groups({"GuardianList", "TeacherResponsesList","LessonList", "ChildPreferenceList"})
  91. */
  92. private $phoneNumber;
  93. /**
  94. * @ORM\Column(type="text", nullable=true)
  95. * @Groups({"GuardianList"})
  96. */
  97. private $comment;
  98. /**
  99. * @ORM\Column(type="string", length=255, nullable=true)
  100. */
  101. private $details;
  102. /**
  103. * @ORM\Column(type="string", length=255, nullable=true)
  104. * @Groups({"GuardianList"})
  105. */
  106. private $balanceStatus = Payment::STATUS_NOTPAID;
  107. /**
  108. * @ORM\Column(type="string", length=255, nullable=true)
  109. * @Groups({"NotificationList"})
  110. */
  111. private $profileImagePath;
  112. /**
  113. * @ORM\OneToMany(targetEntity=Payment::class, mappedBy="guardian", cascade={"all"})
  114. */
  115. private $payments;
  116. /**
  117. * @ORM\OneToMany(targetEntity=PaymentLog::class, mappedBy="guardian", cascade={"all"})
  118. */
  119. private $paymentLogs;
  120. /**
  121. * @ORM\Column(type="datetime", nullable=true)
  122. * @Groups({"showme","GuardianList"})
  123. */
  124. private $dateAdd;
  125. /**
  126. * @ORM\Column(type="string", length=255, nullable=true)
  127. * @Groups({"GuardianRegisterList"})
  128. */
  129. private $status = self::STATUS_PREPARING['value'];
  130. /**
  131. * @ORM\Column(type="string", length=255, nullable=true)
  132. */
  133. private $source;
  134. /**
  135. * @ORM\Column(type="string", length=255, nullable=true)
  136. */
  137. private $company;
  138. /**
  139. * @ORM\Column(type="string", length=255, nullable=true)
  140. */
  141. private $companyCode;
  142. /**
  143. * @ORM\Column(type="string", length=255, nullable=true)
  144. */
  145. private $vatNumber;
  146. /**
  147. * @ORM\Column(type="string", length=255, nullable=true)
  148. */
  149. private $invoicePurpose;
  150. /**
  151. * @ORM\Column(type="boolean", options={"default" : "1"})
  152. */
  153. private $emailReminders = 1;
  154. /**
  155. * @ORM\Column(type="boolean", options={"default" : "1"})
  156. */
  157. private $smsReminders = 1;
  158. /**
  159. * @ORM\Column(type="boolean", options={"default" : "0"})
  160. */
  161. private $isFree = 0;
  162. /**
  163. * @ORM\Column(type="boolean", nullable=true,options={"default" : "0"})
  164. */
  165. private $isDeleted = false;
  166. /**
  167. * @ORM\OneToMany(targetEntity=PriceChange::class, mappedBy="guardian", cascade={"all"})
  168. */
  169. private $priceChanges;
  170. /**
  171. * @ORM\Column(type="boolean", nullable=true,options={"default" : "0"})
  172. */
  173. private $showSurvey = false;
  174. /**
  175. * @ORM\OneToMany(targetEntity=GuardianSurvey::class, mappedBy="guardian")
  176. */
  177. private $guardianSurveys;
  178. /**
  179. * @ORM\Column(type="string", length=255, nullable=true)
  180. * @Groups({"showme","GuardianList"})
  181. */
  182. private $summer;
  183. /**
  184. * @ORM\Column(type="string", length=255, nullable=true)
  185. * @Groups({"GuardianList"})
  186. */
  187. private $summerAdditional;
  188. private $summerDate;
  189. /**
  190. * @ORM\ManyToOne(targetEntity=Admin::class)
  191. */
  192. private $summerByAdmin;
  193. /**
  194. * @ORM\OneToMany(targetEntity=CustomQuestionnaireGuardianAnswer::class, mappedBy="guardian")
  195. */
  196. private $customQuestionnaireGuardianAnswers;
  197. /**
  198. * @ORM\ManyToOne(targetEntity=GuardianContract::class, inversedBy="guardians")
  199. */
  200. private $guardianContract;
  201. /**
  202. * @ORM\OneToMany(targetEntity=PaymentNotificationLog::class, mappedBy="guardian")
  203. */
  204. private $paymentNotificationLogs;
  205. /**
  206. * @ORM\Column(type="boolean", nullable=true)
  207. */
  208. private $blockNextDayLessonsReminders;
  209. /**
  210. * @ORM\Column(type="boolean", nullable=true)
  211. */
  212. private $blockTodayLessonsReminders;
  213. /**
  214. * @ORM\Column(type="string", length=255, nullable=true)
  215. */
  216. private $lastname;
  217. /**
  218. * @ORM\OneToOne(targetEntity=GuardianRegister::class, mappedBy="guardian", cascade={"persist", "remove"})
  219. * @Groups({"ChildPreferenceAssignmentList","GuardianList"})
  220. */
  221. private $guardianRegister;
  222. /**
  223. * @ORM\OneToOne(targetEntity=GuardianSMSResponse::class, mappedBy="guardian", cascade={"persist", "remove"})
  224. */
  225. private $smsResponse;
  226. /**
  227. * @ORM\Column(type="boolean", nullable=true)
  228. */
  229. private $invoiceCompanyInfo = 0;
  230. /**
  231. * @ORM\Column(type="boolean", nullable=true)
  232. */
  233. private $invoiceRealLessonAmount = 0;
  234. /**
  235. * @ORM\Column(type="boolean", nullable=true)
  236. */
  237. private $credentialsSent;
  238. /**
  239. * @ORM\Column(type="datetime", nullable=true)
  240. */
  241. private $childEmailModal;
  242. /**
  243. * @ORM\Column(type="boolean", nullable=true)
  244. * @Groups({"GuardianList"})
  245. */
  246. private $autumn2024back;
  247. /**
  248. * @ORM\Column(type="datetime", nullable=true)
  249. */
  250. private $autumn2024backDate;
  251. /**
  252. * @ORM\ManyToOne(targetEntity=Admin::class)
  253. */
  254. private $autumn2024backByAdmin;
  255. /**
  256. * @ORM\Column(type="boolean", nullable=true)
  257. */
  258. private $notCommingBack2024;
  259. /**
  260. * @ORM\Column(type="datetime", nullable=true)
  261. */
  262. private $notCommingBack2024Date;
  263. /**
  264. * @ORM\ManyToOne(targetEntity=Admin::class)
  265. */
  266. private $notCommingBack2024ByAdmin;
  267. /**
  268. * Stamped once app:price-increase:2026-09 has applied the September 2026 price increase
  269. * (and reprice/letter) for this guardian, so the one-time script never double-applies it.
  270. *
  271. * @ORM\Column(type="datetime", nullable=true)
  272. */
  273. private $septemberPriceIncreaseAppliedAt;
  274. /**
  275. * How much (in EUR) the price actually went up by — 1 or 2, per the guardian's contract, or
  276. * the exact (possibly capped) delta for a flat-hourPrice guardian. Lets the invoice / payment
  277. * history notice show the real amount instead of a hardcoded figure.
  278. *
  279. * @ORM\Column(type="float", nullable=true)
  280. */
  281. private $septemberPriceIncreaseAmount;
  282. /**
  283. * @ORM\Column(type="boolean", nullable=true)
  284. * @Groups({"GuardianList"})
  285. */
  286. private $progress;
  287. /**
  288. * @ORM\Column(type="datetime", nullable=true)
  289. */
  290. private $progressDate;
  291. /**
  292. * @ORM\ManyToOne(targetEntity=Admin::class)
  293. */
  294. private $progressByAdmin;
  295. /**
  296. * @ORM\Column(type="float", nullable=true)
  297. */
  298. private $hourPrice;
  299. /**
  300. * @ORM\Column(type="datetime", nullable=true)
  301. */
  302. private $contractPricingFrom;
  303. /**
  304. * @ORM\OneToMany(targetEntity=GuardianPriceDiscount::class, mappedBy="guardian")
  305. */
  306. private $guardianPriceDiscounts;
  307. /**
  308. * @ORM\Column(type="boolean", nullable=true)
  309. */
  310. private $priceNeverChanges;
  311. /**
  312. * @ORM\Column(type="text", nullable=true)
  313. */
  314. private $googleRefreshToken;
  315. /**
  316. * @ORM\Column(type="json", nullable=true)
  317. */
  318. private $googleAccessToken = [];
  319. /**
  320. * @ORM\OneToMany(targetEntity=AdminConfirmation::class, mappedBy="guardian")
  321. */
  322. private $adminConfirmations;
  323. /**
  324. * @ORM\OneToMany(targetEntity=GuardianActionLog::class, mappedBy="guardian")
  325. */
  326. private $guardianActionLogs;
  327. /**
  328. * @ORM\Column(type="string", length=255, nullable=true)
  329. */
  330. private $referralCode;
  331. /**
  332. * @ORM\Column(type="integer", nullable=true)
  333. */
  334. private $externalSurvey;
  335. /**
  336. * @ORM\Column(type="string", length=255, nullable=true)
  337. */
  338. private $feedback = 1;
  339. /**
  340. * @ORM\Column(type="datetime", nullable=true)
  341. * @Groups({"GuardianList"})
  342. */
  343. private $summerAt;
  344. /**
  345. * @ORM\Column(type="boolean", nullable=true)
  346. */
  347. private $summerClass;
  348. /**
  349. * @ORM\Column(type="boolean", nullable=true)
  350. * @Groups({"GuardianList"})
  351. */
  352. private $flagEarlyPayment;
  353. /**
  354. * @ORM\Column(type="integer", nullable=true)
  355. */
  356. private $earlyPaymentDay;
  357. /**
  358. * @ORM\Column(type="datetime", nullable=true)
  359. */
  360. private $earlyPaymentFrom;
  361. /**
  362. * @ORM\OneToMany(targetEntity=EarlyPayment::class, mappedBy="guardian")
  363. */
  364. private $earlyPayments;
  365. /**
  366. * @ORM\Column(type="float", nullable=true)
  367. */
  368. private $balance;
  369. /**
  370. * @ORM\Column(type="text", nullable=true)
  371. */
  372. private $chatStreamToken;
  373. /**
  374. * @ORM\Column(type="boolean", nullable=true)
  375. * @Groups({"GuardianList"})
  376. */
  377. private $newPriceEmailSent;
  378. /**
  379. * @ORM\Column(type="datetime", nullable=true)
  380. * @Groups({"GuardianList"})
  381. */
  382. private $newEmailOpened;
  383. /**
  384. * @ORM\Column(type="boolean", nullable=true)
  385. * @Groups({"GuardianList"})
  386. */
  387. private $newEmailSubmitted;
  388. /**
  389. * @ORM\Column(type="datetime", nullable=true)
  390. */
  391. private $mobileAppLastUsedAt;
  392. /**
  393. * @ORM\OneToMany(targetEntity=ChatCensorshipJournal::class, mappedBy="guardian")
  394. */
  395. private $chatCensorshipJournals;
  396. /**
  397. * @ORM\Column(type="string", length=255, nullable=true)
  398. */
  399. private $marksignName;
  400. /**
  401. * @ORM\Column(type="string", length=255, nullable=true)
  402. */
  403. private $marksignSurname;
  404. /**
  405. * @ORM\OneToMany(targetEntity=MarketingCampaignData::class, mappedBy="guardian")
  406. */
  407. private $marketingCampaigns;
  408. public function __construct()
  409. {
  410. $this->children = new ArrayCollection();
  411. $this->payments = new ArrayCollection();
  412. $this->paymentLogs = new ArrayCollection();
  413. $this->dateAdd = new \DateTime();
  414. $this->priceChanges = new ArrayCollection();
  415. $this->guardianSurveys = new ArrayCollection();
  416. $this->customQuestionnaireGuardianAnswers = new ArrayCollection();
  417. $this->paymentNotificationLogs = new ArrayCollection();
  418. $this->guardianPriceDiscounts = new ArrayCollection();
  419. $this->adminConfirmations = new ArrayCollection();
  420. $this->guardianActionLogs = new ArrayCollection();
  421. $this->earlyPayments = new ArrayCollection();
  422. $this->chatCensorshipJournals = new ArrayCollection();
  423. $this->marketingCampaigns = new ArrayCollection();
  424. }
  425. public function getId(): ?int
  426. {
  427. return $this->id;
  428. }
  429. public function getEmail(): ?string
  430. {
  431. return $this->email;
  432. }
  433. public function setEmail(string $email): self
  434. {
  435. $this->email = $email;
  436. return $this;
  437. }
  438. /**
  439. * A visual identifier that represents this user.
  440. *
  441. * @see UserInterface
  442. */
  443. public function getUsername(): string
  444. {
  445. return (string)$this->email;
  446. }
  447. public function getUserIdentifier(): string
  448. {
  449. return (string) $this->email;
  450. }
  451. /**
  452. * @see UserInterface
  453. */
  454. public function getRoles(): array
  455. {
  456. $roles = ['ROLE_GUARDIAN', 'ROLE_USER'];
  457. return array_unique($roles);
  458. }
  459. public function setRoles(array $roles): self
  460. {
  461. $roles = ['ROLE_GUARDIAN', 'ROLE_USER'];
  462. $this->roles = $roles;
  463. return $this;
  464. }
  465. /**
  466. * @see UserInterface
  467. */
  468. public function getPassword(): string
  469. {
  470. return (string)$this->password;
  471. }
  472. public function setPassword(string $password): self
  473. {
  474. $this->password = $password;
  475. return $this;
  476. }
  477. /**
  478. * @see UserInterface
  479. */
  480. public function getSalt()
  481. {
  482. // not needed when using the "bcrypt" algorithm in security.yaml
  483. }
  484. /**
  485. * @see UserInterface
  486. */
  487. public function eraseCredentials()
  488. {
  489. // If you store any temporary, sensitive data on the user, clear it here
  490. // $this->plainPassword = null;
  491. }
  492. /**
  493. * @return Collection|Child[]
  494. */
  495. public function getChildren(): Collection
  496. {
  497. return $this->children;
  498. }
  499. public function addChild(Child $child): self
  500. {
  501. if (!$this->children->contains($child)) {
  502. $this->children[] = $child;
  503. $child->setGuardian($this);
  504. }
  505. return $this;
  506. }
  507. public function removeChild(Child $child): self
  508. {
  509. if ($this->children->removeElement($child)) {
  510. // set the owning side to null (unless already changed)
  511. if ($child->getGuardian() === $this) {
  512. $child->setGuardian(null);
  513. }
  514. }
  515. return $this;
  516. }
  517. public function getFullname(): ?string
  518. {
  519. return $this->fullname;
  520. }
  521. public function setFullname(?string $fullname): self
  522. {
  523. $this->fullname = $fullname;
  524. return $this;
  525. }
  526. public function getPhoneNumber(): ?string
  527. {
  528. return $this->phoneNumber;
  529. }
  530. public function setPhoneNumber(?string $phoneNumber): self
  531. {
  532. $this->phoneNumber = $phoneNumber;
  533. return $this;
  534. }
  535. public function getInvoicePurpose(): ?string
  536. {
  537. return $this->invoicePurpose;
  538. }
  539. public function setInvoicePurpose(?string $invoicePurpose): self
  540. {
  541. $this->invoicePurpose = $invoicePurpose;
  542. return $this;
  543. }
  544. public function getComment(): ?string
  545. {
  546. return $this->comment;
  547. }
  548. public function setComment(?string $comment): self
  549. {
  550. $this->comment = $comment;
  551. return $this;
  552. }
  553. public function getDetails(): ?string
  554. {
  555. return $this->details;
  556. }
  557. public function setDetails(?string $details): self
  558. {
  559. $this->details = $details;
  560. return $this;
  561. }
  562. public function getBalanceStatus(): ?string
  563. {
  564. return $this->balanceStatus;
  565. }
  566. public function setBalanceStatus($balanceStatus): self
  567. {
  568. $this->balanceStatus = $balanceStatus;
  569. return $this;
  570. }
  571. public function __toString()
  572. {
  573. return "{$this->fullname} {$this->email}";
  574. }
  575. public function getProfileImagePath(): ?string
  576. {
  577. return $this->profileImagePath;
  578. }
  579. public function setProfileImagePath(?string $profileImagePath): self
  580. {
  581. $this->profileImagePath = $profileImagePath;
  582. return $this;
  583. }
  584. /**
  585. * @return Collection|Payment[]
  586. */
  587. public function getPayments(): Collection
  588. {
  589. return $this->payments;
  590. }
  591. public function addPayment(Payment $payment): self
  592. {
  593. if (!$this->payments->contains($payment)) {
  594. $this->payments[] = $payment;
  595. $payment->setGuardian($this);
  596. }
  597. return $this;
  598. }
  599. public function removePayment(Payment $payment): self
  600. {
  601. if ($this->payments->removeElement($payment)) {
  602. // set the owning side to null (unless already changed)
  603. if ($payment->getGuardian() === $this) {
  604. $payment->setGuardian(null);
  605. }
  606. }
  607. return $this;
  608. }
  609. /**
  610. * @return Collection|PaymentLog[]
  611. */
  612. public function getPaymentLogs(): Collection
  613. {
  614. return $this->paymentLogs;
  615. }
  616. public function addPaymentLog(PaymentLog $paymentLog): self
  617. {
  618. if (!$this->paymentLogs->contains($paymentLog)) {
  619. $this->paymentLogs[] = $paymentLog;
  620. $paymentLog->setGuardian($this);
  621. }
  622. return $this;
  623. }
  624. public function removePaymentLog(PaymentLog $paymentLog): self
  625. {
  626. if ($this->paymentLogs->removeElement($paymentLog)) {
  627. // set the owning side to null (unless already changed)
  628. if ($paymentLog->getGuardian() === $this) {
  629. $paymentLog->setGuardian(null);
  630. }
  631. }
  632. return $this;
  633. }
  634. public function getDateAdd(): ?\DateTimeInterface
  635. {
  636. return $this->dateAdd;
  637. }
  638. public function setDateAdd(\DateTimeInterface $dateAdd): self
  639. {
  640. $this->dateAdd = $dateAdd;
  641. return $this;
  642. }
  643. public function getStatus(): ?string
  644. {
  645. $text = $this->status;
  646. foreach (self::GUARDIAN_STATUSES as $STATUS) {
  647. if ($STATUS['value'] == $this->status) {
  648. $text = $STATUS['text'];
  649. }
  650. }
  651. return $text;
  652. }
  653. public function setStatus(?string $status): self
  654. {
  655. foreach (self::GUARDIAN_STATUSES as $STATUS) {
  656. if ($STATUS['text'] == $status) {
  657. $status = $STATUS['value'];
  658. }
  659. }
  660. $this->status = $status;
  661. return $this;
  662. }
  663. public function getSource(): ?string
  664. {
  665. return $this->source;
  666. }
  667. public function setSource(?string $source): self
  668. {
  669. $this->source = $source;
  670. return $this;
  671. }
  672. public function getCompany(): ?string
  673. {
  674. return $this->company;
  675. }
  676. public function setCompany(?string $company): self
  677. {
  678. $this->company = $company;
  679. return $this;
  680. }
  681. public function getCompanyCode(): ?string
  682. {
  683. return $this->companyCode;
  684. }
  685. public function setCompanyCode(?string $companyCode): self
  686. {
  687. $this->companyCode = $companyCode;
  688. return $this;
  689. }
  690. public function getVatNumber(): ?string
  691. {
  692. return $this->vatNumber;
  693. }
  694. public function setVatNumber(?string $vatNumber): self
  695. {
  696. $this->vatNumber = $vatNumber;
  697. return $this;
  698. }
  699. public function getEmailReminders(): ?bool
  700. {
  701. return $this->emailReminders;
  702. }
  703. public function setEmailReminders(bool $emailReminders): self
  704. {
  705. $this->emailReminders = $emailReminders;
  706. return $this;
  707. }
  708. public function getSmsReminders(): ?bool
  709. {
  710. return $this->smsReminders;
  711. }
  712. public function setSmsReminders(bool $smsReminders): self
  713. {
  714. $this->smsReminders = $smsReminders;
  715. return $this;
  716. }
  717. public function getIsFree(): ?bool
  718. {
  719. return $this->isFree;
  720. }
  721. public function setIsFree(?bool $isFree): self
  722. {
  723. $this->isFree = $isFree;
  724. return $this;
  725. }
  726. public function getIsDeleted(): ?bool
  727. {
  728. return $this->isDeleted;
  729. }
  730. public function setIsDeleted(?bool $isDeleted): self
  731. {
  732. $this->isDeleted = $isDeleted;
  733. return $this;
  734. }
  735. /**
  736. * @return Collection|PriceChange[]
  737. */
  738. public function getPriceChanges(): Collection
  739. {
  740. return $this->priceChanges;
  741. }
  742. public function addPriceChange(PriceChange $priceChange): self
  743. {
  744. if (!$this->priceChanges->contains($priceChange)) {
  745. $this->priceChanges[] = $priceChange;
  746. $priceChange->setGuardian($this);
  747. }
  748. return $this;
  749. }
  750. public function removePriceChange(PriceChange $priceChange): self
  751. {
  752. if ($this->priceChanges->removeElement($priceChange)) {
  753. // set the owning side to null (unless already changed)
  754. if ($priceChange->getGuardian() === $this) {
  755. $priceChange->setGuardian(null);
  756. }
  757. }
  758. return $this;
  759. }
  760. public function getShowSurvey(): ?bool
  761. {
  762. return $this->showSurvey;
  763. }
  764. public function setShowSurvey(?bool $showSurvey): self
  765. {
  766. $this->showSurvey = $showSurvey;
  767. return $this;
  768. }
  769. /**
  770. * @return Collection|GuardianSurvey[]
  771. */
  772. public function getGuardianSurveys(): Collection
  773. {
  774. return $this->guardianSurveys;
  775. }
  776. public function addGuardianSurvey(GuardianSurvey $guardianSurvey): self
  777. {
  778. if (!$this->guardianSurveys->contains($guardianSurvey)) {
  779. $this->guardianSurveys[] = $guardianSurvey;
  780. $guardianSurvey->setGuardian($this);
  781. }
  782. return $this;
  783. }
  784. public function removeGuardianSurvey(GuardianSurvey $guardianSurvey): self
  785. {
  786. if ($this->guardianSurveys->removeElement($guardianSurvey)) {
  787. // set the owning side to null (unless already changed)
  788. if ($guardianSurvey->getGuardian() === $this) {
  789. $guardianSurvey->setGuardian(null);
  790. }
  791. }
  792. return $this;
  793. }
  794. public function getSummer(): ?string
  795. {
  796. return $this->summer;
  797. }
  798. public function setSummer(?string $summer): self
  799. {
  800. $this->summer = $summer;
  801. return $this;
  802. }
  803. public function getSummerAdditional(): ?string
  804. {
  805. return $this->summerAdditional;
  806. }
  807. public function setSummerAdditional(?string $summerAdditional): self
  808. {
  809. $this->summerAdditional = $summerAdditional;
  810. return $this;
  811. }
  812. /**
  813. * @return Collection|CustomQuestionnaireGuardianAnswer[]
  814. */
  815. public function getCustomQuestionnaireGuardianAnswers(): Collection
  816. {
  817. return $this->customQuestionnaireGuardianAnswers;
  818. }
  819. public function addCustomQuestionnaireGuardianAnswer(CustomQuestionnaireGuardianAnswer $customQuestionnaireGuardianAnswer): self
  820. {
  821. if (!$this->customQuestionnaireGuardianAnswers->contains($customQuestionnaireGuardianAnswer)) {
  822. $this->customQuestionnaireGuardianAnswers[] = $customQuestionnaireGuardianAnswer;
  823. $customQuestionnaireGuardianAnswer->setGuardian($this);
  824. }
  825. return $this;
  826. }
  827. public function removeCustomQuestionnaireGuardianAnswer(CustomQuestionnaireGuardianAnswer $customQuestionnaireGuardianAnswer): self
  828. {
  829. if ($this->customQuestionnaireGuardianAnswers->removeElement($customQuestionnaireGuardianAnswer)) {
  830. // set the owning side to null (unless already changed)
  831. if ($customQuestionnaireGuardianAnswer->getGuardian() === $this) {
  832. $customQuestionnaireGuardianAnswer->setGuardian(null);
  833. }
  834. }
  835. return $this;
  836. }
  837. public function getGuardianContract(): ?GuardianContract
  838. {
  839. return $this->guardianContract;
  840. }
  841. public function setGuardianContract(?GuardianContract $guardianContract): self
  842. {
  843. $this->guardianContract = $guardianContract;
  844. return $this;
  845. }
  846. /**
  847. * @return Collection|PaymentNotificationLog[]
  848. */
  849. public function getPaymentNotificationLogs(): Collection
  850. {
  851. return $this->paymentNotificationLogs;
  852. }
  853. public function addPaymentNotificationLog(PaymentNotificationLog $paymentNotificationLog): self
  854. {
  855. if (!$this->paymentNotificationLogs->contains($paymentNotificationLog)) {
  856. $this->paymentNotificationLogs[] = $paymentNotificationLog;
  857. $paymentNotificationLog->setGuardian($this);
  858. }
  859. return $this;
  860. }
  861. public function removePaymentNotificationLog(PaymentNotificationLog $paymentNotificationLog): self
  862. {
  863. if ($this->paymentNotificationLogs->removeElement($paymentNotificationLog)) {
  864. // set the owning side to null (unless already changed)
  865. if ($paymentNotificationLog->getGuardian() === $this) {
  866. $paymentNotificationLog->setGuardian(null);
  867. }
  868. }
  869. return $this;
  870. }
  871. public function getBlockNextDayLessonsReminders(): ?bool
  872. {
  873. return $this->blockNextDayLessonsReminders;
  874. }
  875. public function setBlockNextDayLessonsReminders(?bool $blockNextDayLessonsReminders): self
  876. {
  877. $this->blockNextDayLessonsReminders = $blockNextDayLessonsReminders;
  878. return $this;
  879. }
  880. public function getBlockTodayLessonsReminders(): ?bool
  881. {
  882. return $this->blockTodayLessonsReminders;
  883. }
  884. public function setBlockTodayLessonsReminders(?bool $blockTodayLessonsReminders): self
  885. {
  886. $this->blockTodayLessonsReminders = $blockTodayLessonsReminders;
  887. return $this;
  888. }
  889. public function getLastname(): ?string
  890. {
  891. return $this->lastname;
  892. }
  893. public function setLastname(?string $lastname): self
  894. {
  895. $this->lastname = $lastname;
  896. return $this;
  897. }
  898. public function getGuardianRegister(): ?GuardianRegister
  899. {
  900. return $this->guardianRegister;
  901. }
  902. public function setGuardianRegister(?GuardianRegister $guardianRegister): self
  903. {
  904. // unset the owning side of the relation if necessary
  905. if ($guardianRegister === null && $this->guardianRegister !== null) {
  906. $this->guardianRegister->setGuardian(null);
  907. }
  908. // set the owning side of the relation if necessary
  909. if ($guardianRegister !== null && $guardianRegister->getGuardian() !== $this) {
  910. $guardianRegister->setGuardian($this);
  911. }
  912. $this->guardianRegister = $guardianRegister;
  913. return $this;
  914. }
  915. public function getUnickoFunction(): ?bool
  916. {
  917. foreach ($this->children as $child) {
  918. /**
  919. * @var ChildPreference $childPreference
  920. */
  921. foreach ($child->getChildPreferences() as $childPreference) {
  922. $teacher = $childPreference->getTeacher();
  923. if (isset($teacher) && $teacher->getUnickoFunction()) {
  924. return true;
  925. }
  926. }
  927. }
  928. return false;
  929. }
  930. public function isInvoiceCompanyInfo(): ?bool
  931. {
  932. return $this->invoiceCompanyInfo;
  933. }
  934. public function setInvoiceCompanyInfo(?bool $invoiceCompanyInfo): self
  935. {
  936. $this->invoiceCompanyInfo = $invoiceCompanyInfo;
  937. return $this;
  938. }
  939. public function isInvoiceRealLessonAmount(): ?bool
  940. {
  941. return $this->invoiceRealLessonAmount;
  942. }
  943. public function setInvoiceRealLessonAmount(?bool $invoiceRealLessonAmount): self
  944. {
  945. $this->invoiceRealLessonAmount = $invoiceRealLessonAmount;
  946. return $this;
  947. }
  948. public function isCredentialsSent(): ?bool
  949. {
  950. return $this->credentialsSent;
  951. }
  952. public function setCredentialsSent(?bool $credentialsSent): self
  953. {
  954. $this->credentialsSent = $credentialsSent;
  955. return $this;
  956. }
  957. public function getChildEmailModal(): ?\DateTimeInterface
  958. {
  959. return $this->childEmailModal;
  960. }
  961. public function setChildEmailModal(?\DateTimeInterface $childEmailModal): self
  962. {
  963. $this->childEmailModal = $childEmailModal;
  964. return $this;
  965. }
  966. public function showChildEmailSurvey()
  967. {
  968. $showModal = false;
  969. $children = $this->getChildren();
  970. if (!$this->getChildEmailModal() || (new \DateTime())->format('Y-m') != $this->getChildEmailModal()->format('Y-m')) {
  971. foreach ($children as $child) {
  972. if (!$child->getEmail()) {
  973. $showModal = true;
  974. }
  975. }
  976. }
  977. return $showModal;
  978. }
  979. public function isAutumn2024back(): ?bool
  980. {
  981. return $this->autumn2024back;
  982. }
  983. public function setAutumn2024back(?bool $autumn2024back): self
  984. {
  985. $this->autumn2024back = $autumn2024back;
  986. return $this;
  987. }
  988. public function getAutumn2024backDate(): ?\DateTimeInterface
  989. {
  990. return $this->autumn2024backDate;
  991. }
  992. public function setAutumn2024backDate(?\DateTimeInterface $autumn2024backDate): self
  993. {
  994. $this->autumn2024backDate = $autumn2024backDate;
  995. return $this;
  996. }
  997. public function getAutumn2024backByAdmin(): ?Admin
  998. {
  999. return $this->autumn2024backByAdmin;
  1000. }
  1001. public function setAutumn2024backByAdmin(?Admin $autumn2024backByAdmin): self
  1002. {
  1003. $this->autumn2024backByAdmin = $autumn2024backByAdmin;
  1004. return $this;
  1005. }
  1006. public function getSummerDate(): ?\DateTimeInterface
  1007. {
  1008. return $this->summerDate;
  1009. }
  1010. public function setSummerDate(?\DateTimeInterface $summerDate): self
  1011. {
  1012. $this->summerDate = $summerDate;
  1013. return $this;
  1014. }
  1015. public function getSummerByAdmin(): ?Admin
  1016. {
  1017. return $this->summerByAdmin;
  1018. }
  1019. public function setSummerByAdmin(?Admin $summerByAdmin): self
  1020. {
  1021. $this->summerByAdmin = $summerByAdmin;
  1022. return $this;
  1023. }
  1024. public function isNotCommingBack2024(): ?bool
  1025. {
  1026. return $this->notCommingBack2024;
  1027. }
  1028. public function setNotCommingBack2024(?bool $notCommingBack2024): self
  1029. {
  1030. $this->notCommingBack2024 = $notCommingBack2024;
  1031. return $this;
  1032. }
  1033. public function getNotCommingBack2024Date(): ?\DateTimeInterface
  1034. {
  1035. return $this->notCommingBack2024Date;
  1036. }
  1037. public function setNotCommingBack2024Date(?\DateTimeInterface $notCommingBack2024Date): self
  1038. {
  1039. $this->notCommingBack2024Date = $notCommingBack2024Date;
  1040. return $this;
  1041. }
  1042. public function getNotCommingBack2024ByAdmin(): ?Admin
  1043. {
  1044. return $this->notCommingBack2024ByAdmin;
  1045. }
  1046. public function setNotCommingBack2024ByAdmin(?Admin $notCommingBack2024ByAdmin): self
  1047. {
  1048. $this->notCommingBack2024ByAdmin = $notCommingBack2024ByAdmin;
  1049. return $this;
  1050. }
  1051. public function getSeptemberPriceIncreaseAppliedAt(): ?\DateTimeInterface
  1052. {
  1053. return $this->septemberPriceIncreaseAppliedAt;
  1054. }
  1055. public function setSeptemberPriceIncreaseAppliedAt(?\DateTimeInterface $septemberPriceIncreaseAppliedAt): self
  1056. {
  1057. $this->septemberPriceIncreaseAppliedAt = $septemberPriceIncreaseAppliedAt;
  1058. return $this;
  1059. }
  1060. public function getSeptemberPriceIncreaseAmount(): ?float
  1061. {
  1062. return $this->septemberPriceIncreaseAmount;
  1063. }
  1064. public function setSeptemberPriceIncreaseAmount(?float $septemberPriceIncreaseAmount): self
  1065. {
  1066. $this->septemberPriceIncreaseAmount = $septemberPriceIncreaseAmount;
  1067. return $this;
  1068. }
  1069. public function isProgress(): ?bool
  1070. {
  1071. return $this->progress;
  1072. }
  1073. public function setProgress(?bool $progress): self
  1074. {
  1075. $this->progress = $progress;
  1076. return $this;
  1077. }
  1078. public function getProgressDate(): ?\DateTimeInterface
  1079. {
  1080. return $this->progressDate;
  1081. }
  1082. public function setProgressDate(?\DateTimeInterface $progressDate): self
  1083. {
  1084. $this->progressDate = $progressDate;
  1085. return $this;
  1086. }
  1087. public function getProgressByAdmin(): ?Admin
  1088. {
  1089. return $this->progressByAdmin;
  1090. }
  1091. public function setProgressByAdmin(?Admin $progressByAdmin): self
  1092. {
  1093. $this->progressByAdmin = $progressByAdmin;
  1094. return $this;
  1095. }
  1096. public function getHourPrice(): ?float
  1097. {
  1098. return $this->hourPrice;
  1099. }
  1100. public function setHourPrice(?float $hourPrice): self
  1101. {
  1102. $this->hourPrice = $hourPrice;
  1103. return $this;
  1104. }
  1105. public function getContractPricingFrom(): ?\DateTimeInterface
  1106. {
  1107. return $this->contractPricingFrom;
  1108. }
  1109. public function setContractPricingFrom(?\DateTimeInterface $contractPricingFrom): self
  1110. {
  1111. $this->contractPricingFrom = $contractPricingFrom;
  1112. return $this;
  1113. }
  1114. /**
  1115. * @return Collection<int, GuardianPriceDiscount>
  1116. */
  1117. public function getGuardianPriceDiscounts(): Collection
  1118. {
  1119. return $this->guardianPriceDiscounts;
  1120. }
  1121. public function addGuardianPriceDiscount(GuardianPriceDiscount $guardianPriceDiscount): self
  1122. {
  1123. if (!$this->guardianPriceDiscounts->contains($guardianPriceDiscount)) {
  1124. $this->guardianPriceDiscounts[] = $guardianPriceDiscount;
  1125. $guardianPriceDiscount->setGuardian($this);
  1126. }
  1127. return $this;
  1128. }
  1129. public function removeGuardianPriceDiscount(GuardianPriceDiscount $guardianPriceDiscount): self
  1130. {
  1131. if ($this->guardianPriceDiscounts->removeElement($guardianPriceDiscount)) {
  1132. // set the owning side to null (unless already changed)
  1133. if ($guardianPriceDiscount->getGuardian() === $this) {
  1134. $guardianPriceDiscount->setGuardian(null);
  1135. }
  1136. }
  1137. return $this;
  1138. }
  1139. public function isPriceNeverChanges(): ?bool
  1140. {
  1141. return $this->priceNeverChanges;
  1142. }
  1143. public function setPriceNeverChanges(?bool $priceNeverChanges): self
  1144. {
  1145. $this->priceNeverChanges = $priceNeverChanges;
  1146. return $this;
  1147. }
  1148. public function getGoogleRefreshToken(): ?string
  1149. {
  1150. return $this->googleRefreshToken;
  1151. }
  1152. public function setGoogleRefreshToken(?string $googleRefreshToken): self
  1153. {
  1154. $this->googleRefreshToken = $googleRefreshToken;
  1155. return $this;
  1156. }
  1157. public function getGoogleAccessToken(): ?array
  1158. {
  1159. return $this->googleAccessToken;
  1160. }
  1161. public function setGoogleAccessToken(?array $googleAccessToken): self
  1162. {
  1163. $this->googleAccessToken = $googleAccessToken;
  1164. return $this;
  1165. }
  1166. /**
  1167. * @return Collection<int, AdminConfirmation>
  1168. */
  1169. public function getAdminConfirmations(): Collection
  1170. {
  1171. return $this->adminConfirmations;
  1172. }
  1173. public function addAdminConfirmation(AdminConfirmation $adminConfirmation): self
  1174. {
  1175. if (!$this->adminConfirmations->contains($adminConfirmation)) {
  1176. $this->adminConfirmations[] = $adminConfirmation;
  1177. $adminConfirmation->setGuardian($this);
  1178. }
  1179. return $this;
  1180. }
  1181. public function removeAdminConfirmation(AdminConfirmation $adminConfirmation): self
  1182. {
  1183. if ($this->adminConfirmations->removeElement($adminConfirmation)) {
  1184. // set the owning side to null (unless already changed)
  1185. if ($adminConfirmation->getGuardian() === $this) {
  1186. $adminConfirmation->setGuardian(null);
  1187. }
  1188. }
  1189. return $this;
  1190. }
  1191. /**
  1192. * @return Collection<int, GuardianActionLog>
  1193. */
  1194. public function getGuardianActionLogs(): Collection
  1195. {
  1196. return $this->guardianActionLogs;
  1197. }
  1198. public function addGuardianActionLog(GuardianActionLog $guardianActionLog): self
  1199. {
  1200. if (!$this->guardianActionLogs->contains($guardianActionLog)) {
  1201. $this->guardianActionLogs[] = $guardianActionLog;
  1202. $guardianActionLog->setGuardian($this);
  1203. }
  1204. return $this;
  1205. }
  1206. public function removeGuardianActionLog(GuardianActionLog $guardianActionLog): self
  1207. {
  1208. if ($this->guardianActionLogs->removeElement($guardianActionLog)) {
  1209. // set the owning side to null (unless already changed)
  1210. if ($guardianActionLog->getGuardian() === $this) {
  1211. $guardianActionLog->setGuardian(null);
  1212. }
  1213. }
  1214. return $this;
  1215. }
  1216. public function getReferralCode(): ?string
  1217. {
  1218. return $this->referralCode;
  1219. }
  1220. public function setReferralCode(?string $referralCode): self
  1221. {
  1222. $this->referralCode = $referralCode;
  1223. return $this;
  1224. }
  1225. public function getExternalSurvey(): ?int
  1226. {
  1227. return $this->externalSurvey;
  1228. }
  1229. public function setExternalSurvey(?int $externalSurvey): self
  1230. {
  1231. $this->externalSurvey = $externalSurvey;
  1232. return $this;
  1233. }
  1234. public function getFeedback(): ?string
  1235. {
  1236. return $this->feedback;
  1237. }
  1238. public function setFeedback(?string $feedback): self
  1239. {
  1240. $this->feedback = $feedback;
  1241. return $this;
  1242. }
  1243. public function getSummerAt(): ?\DateTimeInterface
  1244. {
  1245. return $this->summerAt;
  1246. }
  1247. public function setSummerAt(?\DateTimeInterface $summerAt): self
  1248. {
  1249. $this->summerAt = $summerAt;
  1250. return $this;
  1251. }
  1252. public function isSummerClass(): ?bool
  1253. {
  1254. return $this->summerClass;
  1255. }
  1256. public function setSummerClass(?bool $summerClass): self
  1257. {
  1258. $this->summerClass = $summerClass;
  1259. return $this;
  1260. }
  1261. public function isFlagEarlyPayment(): ?bool
  1262. {
  1263. return $this->flagEarlyPayment;
  1264. }
  1265. public function setFlagEarlyPayment(?bool $flagEarlyPayment): self
  1266. {
  1267. $this->flagEarlyPayment = $flagEarlyPayment;
  1268. return $this;
  1269. }
  1270. public function getEarlyPaymentDay(): ?int
  1271. {
  1272. return $this->earlyPaymentDay;
  1273. }
  1274. public function setEarlyPaymentDay(?int $earlyPaymentDay): self
  1275. {
  1276. $this->earlyPaymentDay = $earlyPaymentDay;
  1277. return $this;
  1278. }
  1279. public function getEarlyPaymentFrom(): ?\DateTimeInterface
  1280. {
  1281. return $this->earlyPaymentFrom;
  1282. }
  1283. public function setEarlyPaymentFrom(?\DateTimeInterface $earlyPaymentFrom): self
  1284. {
  1285. $this->earlyPaymentFrom = $earlyPaymentFrom;
  1286. return $this;
  1287. }
  1288. /**
  1289. * @return Collection<int, EarlyPayment>
  1290. */
  1291. public function getEarlyPayments(): Collection
  1292. {
  1293. return $this->earlyPayments;
  1294. }
  1295. public function addEarlyPayment(EarlyPayment $earlyPayment): self
  1296. {
  1297. if (!$this->earlyPayments->contains($earlyPayment)) {
  1298. $this->earlyPayments[] = $earlyPayment;
  1299. $earlyPayment->setGuardian($this);
  1300. }
  1301. return $this;
  1302. }
  1303. public function removeEarlyPayment(EarlyPayment $earlyPayment): self
  1304. {
  1305. if ($this->earlyPayments->removeElement($earlyPayment)) {
  1306. // set the owning side to null (unless already changed)
  1307. if ($earlyPayment->getGuardian() === $this) {
  1308. $earlyPayment->setGuardian(null);
  1309. }
  1310. }
  1311. return $this;
  1312. }
  1313. public function getBalance(): ?float
  1314. {
  1315. return $this->balance;
  1316. }
  1317. public function setBalance(?float $balance): self
  1318. {
  1319. $this->balance = $balance;
  1320. return $this;
  1321. }
  1322. public function getChatStreamToken(): ?string
  1323. {
  1324. return $this->chatStreamToken;
  1325. }
  1326. public function setChatStreamToken(?string $chatStreamToken): self
  1327. {
  1328. $this->chatStreamToken = $chatStreamToken;
  1329. return $this;
  1330. }
  1331. public function isNewPriceEmailSent(): ?bool
  1332. {
  1333. return $this->newPriceEmailSent;
  1334. }
  1335. public function setNewPriceEmailSent(?bool $newPriceEmailSent): self
  1336. {
  1337. $this->newPriceEmailSent = $newPriceEmailSent;
  1338. return $this;
  1339. }
  1340. public function getNewEmailOpened(): ?\DateTimeInterface
  1341. {
  1342. return $this->newEmailOpened;
  1343. }
  1344. public function setNewEmailOpened(?\DateTimeInterface $newEmailOpened): self
  1345. {
  1346. $this->newEmailOpened = $newEmailOpened;
  1347. return $this;
  1348. }
  1349. public function isNewEmailSubmitted(): ?bool
  1350. {
  1351. return $this->newEmailSubmitted;
  1352. }
  1353. public function setNewEmailSubmitted(?bool $newEmailSubmitted): self
  1354. {
  1355. $this->newEmailSubmitted = $newEmailSubmitted;
  1356. return $this;
  1357. }
  1358. public function getMobileAppLastUsedAt(): ?\DateTimeInterface
  1359. {
  1360. return $this->mobileAppLastUsedAt;
  1361. }
  1362. public function setMobileAppLastUsedAt(?\DateTimeInterface $mobileAppLastUsedAt): self
  1363. {
  1364. $this->mobileAppLastUsedAt = $mobileAppLastUsedAt;
  1365. return $this;
  1366. }
  1367. /**
  1368. * @return Collection<int, ChatCensorshipJournal>
  1369. */
  1370. public function getChatCensorshipJournals(): Collection
  1371. {
  1372. return $this->chatCensorshipJournals;
  1373. }
  1374. public function addChatCensorshipJournal(ChatCensorshipJournal $chatCensorshipJournal): self
  1375. {
  1376. if (!$this->chatCensorshipJournals->contains($chatCensorshipJournal)) {
  1377. $this->chatCensorshipJournals[] = $chatCensorshipJournal;
  1378. $chatCensorshipJournal->setGuardian($this);
  1379. }
  1380. return $this;
  1381. }
  1382. public function removeChatCensorshipJournal(ChatCensorshipJournal $chatCensorshipJournal): self
  1383. {
  1384. if ($this->chatCensorshipJournals->removeElement($chatCensorshipJournal)) {
  1385. // set the owning side to null (unless already changed)
  1386. if ($chatCensorshipJournal->getGuardian() === $this) {
  1387. $chatCensorshipJournal->setGuardian(null);
  1388. }
  1389. }
  1390. return $this;
  1391. }
  1392. public function getMarksignName(): ?string
  1393. {
  1394. return $this->marksignName;
  1395. }
  1396. public function setMarksignName(?string $marksignName): self
  1397. {
  1398. $this->marksignName = $marksignName;
  1399. return $this;
  1400. }
  1401. public function getMarksignSurname(): ?string
  1402. {
  1403. return $this->marksignSurname;
  1404. }
  1405. public function setMarksignSurname(?string $marksignSurname): self
  1406. {
  1407. $this->marksignSurname = $marksignSurname;
  1408. return $this;
  1409. }
  1410. public function getMarketingCampaigns(): Collection
  1411. {
  1412. return $this->marketingCampaigns;
  1413. }
  1414. public function setMarketingCampaigns(Collection $marketingCampaigns): void
  1415. {
  1416. $this->marketingCampaigns = $marketingCampaigns;
  1417. }
  1418. }