src/Entity/User.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\UserRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\DBAL\Types\Types;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  9. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  10. use Symfony\Component\Security\Core\User\UserInterface;
  11. use App\Entity\Traits\Timestampable;
  12. use JMS\Serializer\Annotation\Groups;
  13. #[ORM\HasLifecycleCallbacks]
  14. #[ORM\Entity(repositoryClassUserRepository::class)]
  15. #[ORM\Table(name'`user`')]
  16. #[UniqueEntity(fields: ['phone'], message'There is already an account with this email')]
  17. class User implements UserInterfacePasswordAuthenticatedUserInterface
  18.     
  19.     use Timestampable;
  20.     #[ORM\Id]
  21.     #[ORM\GeneratedValue]
  22.     #[ORM\Column]
  23.     #[Groups(['homework','getNews','getUserNotification','chatWebNew''chatView''chatAllList''singleMessage','getDiscussion','getStudents','getSubject','getAppUsers'])]
  24.     private ?int $id null;
  25.     #[ORM\Column(length180nullabletrue)]
  26.     #[Groups(["getAppUsers","getUserNotification"])]
  27.     private ?string $email null;
  28.     #[ORM\Column]
  29.     private array $roles = [];
  30.     /**
  31.      * @var string The hashed password
  32.      */
  33.     #[ORM\Column]
  34.     private ?string $password null;
  35.     #[ORM\Column(length255nullabletrue)]
  36.     #[Groups(['chatWebNew''chatAllList','getDiscussion','getAppUsers','getUserNotification'])]
  37.     private ?string $firstName null;
  38.     #[ORM\Column(length255nullabletrue)]
  39.     #[Groups(['chatWebNew''chatAllList','getDiscussion','getAppUsers','getUserNotification'])]
  40.     private ?string $lastName null;
  41.     #[ORM\Column(length255)]
  42.     #[Groups(['getAppUsers'])]
  43.     private ?string $phone null;
  44.     #[ORM\Column(length255)]
  45.     #[Groups(['chatWebNew','getDiscussion','getAppUsers','getUserNotification'])]
  46.     private ?string $userType null;
  47.     #[ORM\Column(type'boolean')]
  48.     private $isVerified false;
  49.     #[ORM\OneToMany(mappedBy'author'targetEntityNews::class)]
  50.     private Collection $news;
  51.     #[ORM\OneToMany(mappedBy'author'targetEntityEvent::class)]
  52.     private Collection $events;
  53.     #[ORM\OneToMany(mappedBy'user'targetEntityUserYear::class)]
  54.     private Collection $userYears;
  55.     #[ORM\Column(length255nullabletrue)]
  56.     #[Groups(['getAppUsers'])]
  57.     private ?string $matricule null;
  58.     #[ORM\OneToMany(mappedBy'prof'targetEntitySubject::class)]
  59.     private Collection $subjects;
  60.     #[ORM\OneToMany(mappedBy'parent'targetEntityStudent::class)]
  61.     private Collection $students;
  62.     #[ORM\OneToMany(mappedBy'author'targetEntityHomeWork::class)]
  63.     private Collection $homeWorks;
  64.     #[ORM\OneToMany(mappedBy'initiator'targetEntityChat::class)]
  65.     private Collection $chats;
  66.     #[ORM\OneToMany(mappedBy'author'targetEntityMessage::class)]
  67.     private Collection $messages;
  68.     #[ORM\OneToMany(mappedBy'author'targetEntityDocInfo::class)]
  69.     private Collection $docInfos;
  70.     #[ORM\OneToMany(mappedBy'editor'targetEntityDocInfo::class)]
  71.     private Collection $docInfoUpdated;
  72.     #[ORM\OneToMany(mappedBy'parent'targetEntityDocInfo::class)]
  73.     private Collection $parentDocInfos;
  74.     #[ORM\OneToMany(mappedBy'userA'targetEntityDiscussion::class)]
  75.     private Collection $discussions;
  76.     #[ORM\OneToMany(mappedBy'messageBy'targetEntityDiscussionMessage::class)]
  77.     private Collection $discussionMessages;
  78.     #[ORM\OneToMany(mappedBy'user'targetEntityNotifications::class)]
  79.     private Collection $notifications;
  80.     #[ORM\Column(length255nullabletrue)]
  81.     private ?string $fullName null;
  82.     #[ORM\OneToMany(mappedBy'author'targetEntityAbsence::class)]
  83.     private Collection $absences;
  84.     #[ORM\OneToMany(mappedBy'editor'targetEntityAbsence::class)]
  85.     private Collection $absencesEdited;
  86.     #[ORM\OneToMany(mappedBy'author'targetEntityCategoryEvent::class)]
  87.     private Collection $categoryEvents;
  88.     #[ORM\OneToMany(mappedBy'editor'targetEntityCategoryEvent::class)]
  89.     private Collection $categoryEventsEdited;
  90.     #[ORM\OneToMany(mappedBy'author'targetEntityClassYear::class)]
  91.     private Collection $classYears;
  92.     #[ORM\OneToMany(mappedBy'editor'targetEntityClassYear::class)]
  93.     private Collection $ClassYearsEdited;
  94.     #[ORM\OneToMany(mappedBy'editor'targetEntityEvent::class)]
  95.     private Collection $eventsEdited;
  96.     #[ORM\OneToMany(mappedBy'author'targetEntityExams::class)]
  97.     private Collection $exams;
  98.     #[ORM\OneToMany(mappedBy'editor'targetEntityExams::class)]
  99.     private Collection $examsEdited;
  100.     #[ORM\OneToMany(mappedBy'editor'targetEntityHomeWork::class)]
  101.     private Collection $homeworksEdited;
  102.     #[ORM\OneToMany(mappedBy'author'targetEntityLate::class)]
  103.     private Collection $lates;
  104.     #[ORM\OneToMany(mappedBy'editor'targetEntityLate::class)]
  105.     private Collection $latesEdited;
  106.     #[ORM\OneToMany(mappedBy'author'targetEntityNewsCategory::class)]
  107.     private Collection $newsCategories;
  108.     #[ORM\OneToMany(mappedBy'editor'targetEntityNewsCategory::class)]
  109.     private Collection $newsCategoriesEdited;
  110.     #[ORM\OneToMany(mappedBy'author'targetEntityNote::class)]
  111.     private Collection $notes;
  112.     #[ORM\OneToMany(mappedBy'editor'targetEntityNote::class)]
  113.     private Collection $notesEdited;
  114.     #[ORM\OneToMany(mappedBy'author'targetEntitySchoolSection::class)]
  115.     private Collection $schoolSections;
  116.     #[ORM\OneToMany(mappedBy'editor'targetEntitySchoolSection::class)]
  117.     private Collection $schoolSectionsEdited;
  118.     #[ORM\OneToMany(mappedBy'author'targetEntitySchoolYear::class)]
  119.     private Collection $schoolYears;
  120.     #[ORM\OneToMany(mappedBy'editor'targetEntitySchoolYear::class)]
  121.     private Collection $schoolYearsEdited;
  122.     #[ORM\OneToMany(mappedBy'editor'targetEntityStudent::class)]
  123.     private Collection $studentsEdited;
  124.     #[ORM\OneToMany(mappedBy'editor'targetEntitySubject::class)]
  125.     private Collection $subjectsEdited;
  126.     #[ORM\OneToMany(mappedBy'author'targetEntitySubjectGroup::class)]
  127.     private Collection $subjectGroups;
  128.     #[ORM\OneToMany(mappedBy'editor'targetEntitySubjectGroup::class)]
  129.     private Collection $subjectGroupsEdited;
  130.     #[ORM\OneToMany(mappedBy'author'targetEntityTheClass::class)]
  131.     private Collection $theClasses;
  132.     #[ORM\OneToMany(mappedBy'editor'targetEntityTheClass::class)]
  133.     private Collection $theClassesEdited;
  134.     #[ORM\ManyToOne(targetEntityself::class, inversedBy'users'cascade: ["persist"])]
  135.     private ?self $author null;
  136.     #[ORM\OneToMany(mappedBy'author'targetEntityself::class)]
  137.     private Collection $users;
  138.     #[ORM\ManyToOne(targetEntityself::class, inversedBy'usersEdited'cascade: ["persist"])]
  139.     private ?self $editor null;
  140.     #[ORM\OneToMany(mappedBy'editor'targetEntityself::class)]
  141.     private Collection $usersEdited;
  142.     #[ORM\OneToMany(mappedBy'author'targetEntityStudent::class)]
  143.     private Collection $studentsCreated;
  144.     #[ORM\OneToMany(mappedBy'author'targetEntitySubject::class)]
  145.     private Collection $subjectsCreated;
  146.     #[ORM\OneToMany(mappedBy'editor'targetEntityNews::class)]
  147.     private Collection $newsEdited;
  148.     #[ORM\OneToMany(mappedBy'author'targetEntityPunish::class)]
  149.     private Collection $punishes;
  150.     #[ORM\OneToMany(mappedBy'author'targetEntityPunishCategory::class)]
  151.     private Collection $punishCategories;
  152.     #[Groups(['getDiscussion'])]
  153.     #[ORM\Column(typeTypes::BIGINTnullabletrue)]
  154.     private ?string $lastRequestTs null;
  155.     #[ORM\ManyToOne(inversedBy'users'cascade: ["persist"])]
  156.     private ?School $school null;
  157.     #[ORM\OneToMany(mappedBy'author'targetEntityDiscussionClassMessage::class)]
  158.     private Collection $discussionClassMessages;
  159.     #[ORM\OneToMany(mappedBy'author'targetEntityAgenda::class)]
  160.     private Collection $agendas;
  161.     #[ORM\OneToMany(mappedBy'author'targetEntityExamAgenda::class)]
  162.     private Collection $examAgendas;
  163.     #[ORM\OneToMany(mappedBy'author'targetEntitySubSequence::class)]
  164.     private Collection $subSequences;
  165.     #[ORM\OneToMany(mappedBy'author'targetEntityQuarter::class)]
  166.     private Collection $quarters;
  167.     #[ORM\OneToMany(mappedBy'author'targetEntitySubNote::class)]
  168.     private Collection $subNotes;
  169.     #[ORM\OneToMany(mappedBy'author'targetEntityAgendaDay::class)]
  170.     private Collection $agendaDays;
  171.     #[ORM\OneToMany(mappedBy'author'targetEntityAgendaElement::class)]
  172.     private Collection $agendaElements;
  173.     #[ORM\OneToMany(mappedBy'author'targetEntityExamAgendaDay::class)]
  174.     private Collection $examAgendaDays;
  175.     #[ORM\OneToMany(mappedBy'author'targetEntityExamAgendaElement::class)]
  176.     private Collection $examAgendaElements;
  177.     #[ORM\OneToMany(mappedBy'author'targetEntityAppreciation::class)]
  178.     private Collection $appreciations;
  179.     #[ORM\OneToMany(mappedBy'user'targetEntityLocalAccount::class)]
  180.     private Collection $localAccounts;
  181.     #[ORM\OneToMany(mappedBy'user'targetEntityNewsBookmark::class)]
  182.     private Collection $newsBookmarks;
  183.     #[ORM\OneToMany(mappedBy'user'targetEntityHomeworkBookmark::class)]
  184.     private Collection $homeworkBookmarks;
  185.     #[ORM\OneToMany(mappedBy'author'targetEntityScolarityHistory::class)]
  186.     private Collection $scolarityHistories;
  187.     #[ORM\OneToMany(mappedBy'author'targetEntityScolarityHistoryEdition::class)]
  188.     private Collection $scolarityHistoryEditions;
  189.     #[ORM\OneToMany(mappedBy'author'targetEntityJustifyAbsence::class)]
  190.     private Collection $justifyAbsences;
  191.     #[ORM\OneToMany(mappedBy'author'targetEntityVerbalProcess::class)]
  192.     private Collection $verbalProcesses;
  193.     #[ORM\OneToMany(mappedBy'author'targetEntityAbsenceDisciplineConcileConfig::class)]
  194.     private Collection $absenceDisciplineConcileConfigs;
  195.     #[ORM\OneToMany(mappedBy'prof'targetEntityTheClass::class)]
  196.     private Collection $theClassesTeached;
  197.     #[ORM\OneToMany(mappedBy'author'targetEntityPrimaryNote::class)]
  198.     private Collection $primaryNotes;
  199.     #[ORM\OneToMany(mappedBy'author'targetEntityVerbalProcessCategory::class)]
  200.     private Collection $verbalProcessCategories;
  201.     #[ORM\Column(length255nullabletrue)]
  202.     private ?string $theme null;
  203.     #[ORM\Column(length255nullabletrue)]
  204.     #[Groups(["getDiscussion"])]
  205.     private ?string $picture null;
  206.     #[ORM\Column(length255nullabletrue)]
  207.     private ?string $sexe null;
  208.     #[ORM\OneToMany(mappedBy'user'targetEntityUserAndroidToken::class)]
  209.     private Collection $userAndroidTokens;
  210.     #[ORM\OneToMany(mappedBy'user'targetEntityUserIphoneToken::class)]
  211.     private Collection $userIphoneTokens;
  212.     #[ORM\Column(length255nullabletrue)]
  213.     private ?string $localPhoneLang null;
  214.     #[ORM\OneToMany(mappedBy'author'targetEntityAbsenceBlameConfig::class)]
  215.     private Collection $absenceBlameConfigs;
  216.     #[ORM\OneToMany(mappedBy'author'targetEntityAbsenceWarningConfig::class)]
  217.     private Collection $absenceWarningConfigs;
  218.     #[ORM\OneToMany(mappedBy'author'targetEntityAbsencePunishConfig::class)]
  219.     private Collection $absencePunishConfigs;
  220.     #[ORM\OneToMany(mappedBy'author'targetEntityAbsenceExclusionConfig::class)]
  221.     private Collection $absenceExclusionConfigs;
  222.     #[ORM\OneToMany(mappedBy'author'targetEntityGlobalDisciplineEnabledConfig::class)]
  223.     private Collection $globalDisciplineEnabledConfigs;
  224.     #[ORM\OneToMany(mappedBy'author'targetEntityAbsenceRetainedConfig::class)]
  225.     private Collection $absenceRetainedConfigs;
  226.     #[ORM\Column(length255nullabletrue)]
  227.     private ?string $userToken null;
  228.     #[ORM\OneToMany(mappedBy'author'targetEntityDisciplineConcile::class)]
  229.     private Collection $disciplineConciles;
  230.     #[ORM\OneToMany(mappedBy'user'targetEntityUserNotifications::class)]
  231.     private Collection $userNotifications;
  232.     #[ORM\OneToMany(mappedBy'prof'targetEntityTimeTable::class)]
  233.     private Collection $timeTables;
  234.     #[ORM\OneToMany(mappedBy'user'targetEntityDiscussionMessagesCount::class, orphanRemovaltrue)]
  235.     private Collection $discussionMessagesCounts;
  236.     public function __toString(): string
  237.     {
  238.         return $this->getFullName();
  239.     }
  240.     public function __construct()
  241.     {
  242.         $this->news = new ArrayCollection();
  243.         $this->events = new ArrayCollection();
  244.         $this->userYears = new ArrayCollection();
  245.         $this->subjects = new ArrayCollection();
  246.         $this->students = new ArrayCollection();
  247.         $this->homeWorks = new ArrayCollection();
  248.         $this->chats = new ArrayCollection();
  249.         $this->messages = new ArrayCollection();
  250.         $this->docInfos = new ArrayCollection();
  251.         $this->docInfoUpdated = new ArrayCollection();
  252.         $this->parentDocInfos = new ArrayCollection();
  253.         $this->discussions = new ArrayCollection();
  254.         $this->discussionMessages = new ArrayCollection();
  255.         $this->notifications = new ArrayCollection();
  256.         $this->absences = new ArrayCollection();
  257.         $this->absencesEdited = new ArrayCollection();
  258.         $this->categoryEvents = new ArrayCollection();
  259.         $this->categoryEventsEdited = new ArrayCollection();
  260.         $this->classYears = new ArrayCollection();
  261.         $this->ClassYearsEdited = new ArrayCollection();
  262.         $this->eventsEdited = new ArrayCollection();
  263.         $this->exams = new ArrayCollection();
  264.         $this->examsEdited = new ArrayCollection();
  265.         $this->homeworksEdited = new ArrayCollection();
  266.         $this->lates = new ArrayCollection();
  267.         $this->latesEdited = new ArrayCollection();
  268.         $this->newsCategories = new ArrayCollection();
  269.         $this->newsCategoriesEdited = new ArrayCollection();
  270.         $this->notes = new ArrayCollection();
  271.         $this->notesEdited = new ArrayCollection();
  272.         $this->schoolSections = new ArrayCollection();
  273.         $this->schoolSectionsEdited = new ArrayCollection();
  274.         $this->schoolYears = new ArrayCollection();
  275.         $this->schoolYearsEdited = new ArrayCollection();
  276.         $this->studentsEdited = new ArrayCollection();
  277.         $this->subjectsEdited = new ArrayCollection();
  278.         $this->subjectGroups = new ArrayCollection();
  279.         $this->subjectGroupsEdited = new ArrayCollection();
  280.         $this->theClasses = new ArrayCollection();
  281.         $this->theClassesEdited = new ArrayCollection();
  282.         $this->users = new ArrayCollection();
  283.         $this->usersEdited = new ArrayCollection();
  284.         $this->studentsCreated = new ArrayCollection();
  285.         $this->subjectsCreated = new ArrayCollection();
  286.         $this->newsEdited = new ArrayCollection();
  287.         $this->punishes = new ArrayCollection();
  288.         $this->punishCategories = new ArrayCollection();
  289.         $this->discussionClassMessages = new ArrayCollection();
  290.         $this->agendas = new ArrayCollection();
  291.         $this->examAgendas = new ArrayCollection();
  292.         $this->subSequences = new ArrayCollection();
  293.         $this->quarters = new ArrayCollection();
  294.         $this->subNotes = new ArrayCollection();
  295.         $this->agendaDays = new ArrayCollection();
  296.         $this->agendaElements = new ArrayCollection();
  297.         $this->examAgendaDays = new ArrayCollection();
  298.         $this->examAgendaElements = new ArrayCollection();
  299.         $this->appreciations = new ArrayCollection();
  300.         $this->localAccounts = new ArrayCollection();
  301.         $this->scolarityHistories = new ArrayCollection();
  302.         $this->scolarityHistoryEditions = new ArrayCollection();
  303.         $this->justifyAbsences = new ArrayCollection();
  304.         $this->verbalProcesses = new ArrayCollection();
  305.         $this->absenceDisciplineConcileConfigs = new ArrayCollection();
  306.         $this->theClassesTeached = new ArrayCollection();
  307.         $this->primaryNotes = new ArrayCollection();
  308.         $this->verbalProcessCategories = new ArrayCollection();
  309.         $this->newsBookmarks = new ArrayCollection();
  310.         $this->homeworkBookmarks = new ArrayCollection();
  311.         $this->userAndroidTokens = new ArrayCollection();
  312.         $this->userIphoneTokens = new ArrayCollection();
  313.         $this->absenceBlameConfigs = new ArrayCollection();
  314.         $this->absenceWarningConfigs = new ArrayCollection();
  315.         $this->absencePunishConfigs = new ArrayCollection();
  316.         $this->absenceExclusionConfigs = new ArrayCollection();
  317.         $this->globalDisciplineEnabledConfigs = new ArrayCollection();
  318.         $this->absenceRetainedConfigs = new ArrayCollection();
  319.         $this->disciplineConciles = new ArrayCollection();
  320.         $this->userNotifications = new ArrayCollection();
  321.         $this->timeTables = new ArrayCollection();
  322.         $this->discussionMessagesCounts = new ArrayCollection();
  323.     }
  324.     public function getFullName():string
  325.     {
  326.         return $this->getLastName()." ".$this->getFirstName();
  327.     }
  328.     public function getId(): ?int
  329.     {
  330.         return $this->id;
  331.     }
  332.     public function getEmail(): ?string
  333.     {
  334.         return $this->email;
  335.     }
  336.     public function setEmail(string $email): static
  337.     {
  338.         $this->email $email;
  339.         return $this;
  340.     }
  341.     /**
  342.      * A visual identifier that represents this user.
  343.      *
  344.      * @see UserInterface
  345.      */
  346.     public function getUserIdentifier(): string
  347.     {
  348.         return (string) $this->email;
  349.     }
  350.     /**
  351.      * @see UserInterface
  352.      */
  353.     public function getRoles(): array
  354.     {
  355.         $roles $this->roles;
  356.         // guarantee every user at least has ROLE_USER
  357.         $roles[] = 'ROLE_USER';
  358.         return array_unique($roles);
  359.     }
  360.     public function setRoles(array $roles): static
  361.     {
  362.         $this->roles $roles;
  363.         return $this;
  364.     }
  365.     /**
  366.      * @see PasswordAuthenticatedUserInterface
  367.      */
  368.     public function getPassword(): string
  369.     {
  370.         return $this->password;
  371.     }
  372.     public function setPassword(string $password): static
  373.     {
  374.         $this->password $password;
  375.         return $this;
  376.     }
  377.     /**
  378.      * @see UserInterface
  379.      */
  380.     public function eraseCredentials(): void
  381.     {
  382.         // If you store any temporary, sensitive data on the user, clear it here
  383.         // $this->plainPassword = null;
  384.     }
  385.     public function getFirstName(): ?string
  386.     {
  387.         return $this->firstName;
  388.     }
  389.     public function setFirstName(string $firstName): static
  390.     {
  391.         $this->firstName $firstName;
  392.         return $this;
  393.     }
  394.     public function getLastName(): ?string
  395.     {
  396.         return $this->lastName;
  397.     }
  398.     public function setLastName(string $lastName): static
  399.     {
  400.         $this->lastName $lastName;
  401.         return $this;
  402.     }
  403.     public function getPhone(): ?string
  404.     {
  405.         return $this->phone;
  406.     }
  407.     public function setPhone(string $phone): static
  408.     {
  409.         $this->phone $phone;
  410.         return $this;
  411.     }
  412.     public function getUserType(): ?string
  413.     {
  414.         return $this->userType;
  415.     }
  416.     public function setUserType(string $userType): static
  417.     {
  418.         $this->userType $userType;
  419.         return $this;
  420.     }
  421.     public function isVerified(): bool
  422.     {
  423.         return $this->isVerified;
  424.     }
  425.     public function setIsVerified(bool $isVerified): static
  426.     {
  427.         $this->isVerified $isVerified;
  428.         return $this;
  429.     }
  430.     /**
  431.      * @return Collection<int, News>
  432.      */
  433.     public function getNews(): Collection
  434.     {
  435.         return $this->news;
  436.     }
  437.     public function addNews(News $news): static
  438.     {
  439.         if (!$this->news->contains($news)) {
  440.             $this->news->add($news);
  441.             $news->setAuthor($this);
  442.         }
  443.         return $this;
  444.     }
  445.     public function removeNews(News $news): static
  446.     {
  447.         if ($this->news->removeElement($news)) {
  448.             // set the owning side to null (unless already changed)
  449.             if ($news->getAuthor() === $this) {
  450.                 $news->setAuthor(null);
  451.             }
  452.         }
  453.         return $this;
  454.     }
  455.     /**
  456.      * @return Collection<int, Event>
  457.      */
  458.     public function getEvents(): Collection
  459.     {
  460.         return $this->events;
  461.     }
  462.     public function addEvent(Event $event): static
  463.     {
  464.         if (!$this->events->contains($event)) {
  465.             $this->events->add($event);
  466.             $event->setAuthor($this);
  467.         }
  468.         return $this;
  469.     }
  470.     public function removeEvent(Event $event): static
  471.     {
  472.         if ($this->events->removeElement($event)) {
  473.             // set the owning side to null (unless already changed)
  474.             if ($event->getAuthor() === $this) {
  475.                 $event->setAuthor(null);
  476.             }
  477.         }
  478.         return $this;
  479.     }
  480.     /**
  481.      * @return Collection<int, UserYear>
  482.      */
  483.     public function getUserYears(): Collection
  484.     {
  485.         return $this->userYears;
  486.     }
  487.     public function addUserYear(UserYear $userYear): static
  488.     {
  489.         if (!$this->userYears->contains($userYear)) {
  490.             $this->userYears->add($userYear);
  491.             $userYear->setUser($this);
  492.         }
  493.         return $this;
  494.     }
  495.     public function removeUserYear(UserYear $userYear): static
  496.     {
  497.         if ($this->userYears->removeElement($userYear)) {
  498.             // set the owning side to null (unless already changed)
  499.             if ($userYear->getUser() === $this) {
  500.                 $userYear->setUser(null);
  501.             }
  502.         }
  503.         return $this;
  504.     }
  505.     public function getMatricule(): ?string
  506.     {
  507.         return $this->matricule;
  508.     }
  509.     public function setMatricule(?string $matricule): static
  510.     {
  511.         $this->matricule $matricule;
  512.         return $this;
  513.     }
  514.     /**
  515.      * @return Collection<int, Subject>
  516.      */
  517.     public function getSubjects(): Collection
  518.     {
  519.         return $this->subjects;
  520.     }
  521.     public function addSubject(Subject $subject): static
  522.     {
  523.         if (!$this->subjects->contains($subject)) {
  524.             $this->subjects->add($subject);
  525.             $subject->setProf($this);
  526.         }
  527.         return $this;
  528.     }
  529.     public function removeSubject(Subject $subject): static
  530.     {
  531.         if ($this->subjects->removeElement($subject)) {
  532.             // set the owning side to null (unless already changed)
  533.             if ($subject->getProf() === $this) {
  534.                 $subject->setProf(null);
  535.             }
  536.         }
  537.         return $this;
  538.     }
  539.     /**
  540.      * @return Collection<int, Student>
  541.      */
  542.     public function getStudents(): Collection
  543.     {
  544.         return $this->students;
  545.     }
  546.     public function addStudent(Student $student): static
  547.     {
  548.         if (!$this->students->contains($student)) {
  549.             $this->students->add($student);
  550.             $student->setParent($this);
  551.         }
  552.         return $this;
  553.     }
  554.     public function removeStudent(Student $student): static
  555.     {
  556.         if ($this->students->removeElement($student)) {
  557.             // set the owning side to null (unless already changed)
  558.             if ($student->getParent() === $this) {
  559.                 $student->setParent(null);
  560.             }
  561.         }
  562.         return $this;
  563.     }
  564.     /**
  565.      * @return Collection<int, HomeWork>
  566.      */
  567.     public function getHomeWorks(): Collection
  568.     {
  569.         return $this->homeWorks;
  570.     }
  571.     public function addHomeWork(HomeWork $homeWork): static
  572.     {
  573.         if (!$this->homeWorks->contains($homeWork)) {
  574.             $this->homeWorks->add($homeWork);
  575.             $homeWork->setAuthor($this);
  576.         }
  577.         return $this;
  578.     }
  579.     public function removeHomeWork(HomeWork $homeWork): static
  580.     {
  581.         if ($this->homeWorks->removeElement($homeWork)) {
  582.             // set the owning side to null (unless already changed)
  583.             if ($homeWork->getAuthor() === $this) {
  584.                 $homeWork->setAuthor(null);
  585.             }
  586.         }
  587.         return $this;
  588.     }
  589.     /**
  590.      * @return Collection<int, Chat>
  591.      */
  592.     public function getChats(): Collection
  593.     {
  594.         return $this->chats;
  595.     }
  596.     public function addChat(Chat $chat): static
  597.     {
  598.         if (!$this->chats->contains($chat)) {
  599.             $this->chats->add($chat);
  600.             $chat->setInitiator($this);
  601.         }
  602.         return $this;
  603.     }
  604.     public function removeChat(Chat $chat): static
  605.     {
  606.         if ($this->chats->removeElement($chat)) {
  607.             // set the owning side to null (unless already changed)
  608.             if ($chat->getInitiator() === $this) {
  609.                 $chat->setInitiator(null);
  610.             }
  611.         }
  612.         return $this;
  613.     }
  614.     /**
  615.      * @return Collection<int, Message>
  616.      */
  617.     public function getMessages(): Collection
  618.     {
  619.         return $this->messages;
  620.     }
  621.     public function addMessage(Message $message): static
  622.     {
  623.         if (!$this->messages->contains($message)) {
  624.             $this->messages->add($message);
  625.             $message->setAuthor($this);
  626.         }
  627.         return $this;
  628.     }
  629.     public function removeMessage(Message $message): static
  630.     {
  631.         if ($this->messages->removeElement($message)) {
  632.             // set the owning side to null (unless already changed)
  633.             if ($message->getAuthor() === $this) {
  634.                 $message->setAuthor(null);
  635.             }
  636.         }
  637.         return $this;
  638.     }
  639.     /* @return Collection<int, Discussion>
  640.     */
  641.     public function getDiscussions(): Collection
  642.     {
  643.         return $this->discussions;
  644.     }
  645.     public function addDiscussion(Discussion $discussion): static
  646.     {
  647.         if (!$this->discussions->contains($discussion)) {
  648.             $this->discussions->add($discussion);
  649.             $discussion->setUserA($this);
  650.         }
  651.         return $this;
  652.     }
  653.     public function removeDiscussion(Discussion $discussion): static
  654.     {
  655.         if ($this->discussions->removeElement($discussion)) {
  656.             // set the owning side to null (unless already changed)
  657.             if ($discussion->getUserA() === $this) {
  658.                 $discussion->setUserA(null);
  659.             }
  660.         }
  661.         return $this;
  662.     }
  663.     /**
  664.      * @return Collection<int, DocInfo>
  665.      */
  666.     public function getDocInfos(): Collection
  667.     {
  668.         return $this->docInfos;
  669.     }
  670.     public function addDocInfo(DocInfo $docInfo): static
  671.     {
  672.         if (!$this->docInfos->contains($docInfo)) {
  673.             $this->docInfos->add($docInfo);
  674.             $docInfo->setAuthor($this);
  675.         }
  676.         return $this;
  677.     }
  678.     public function removeDocInfo(DocInfo $docInfo): static
  679.     {
  680.         if ($this->docInfos->removeElement($docInfo)) {
  681.             // set the owning side to null (unless already changed)
  682.             if ($docInfo->getAuthor() === $this) {
  683.                 $docInfo->setAuthor(null);
  684.             }
  685.         }
  686.         return $this;
  687.     }
  688.     /**
  689.      * @return Collection<int, DocInfo>
  690.      */
  691.     public function getDocInfoUpdated(): Collection
  692.     {
  693.         return $this->docInfoUpdated;
  694.     }
  695.     public function addDocInfoUpdated(DocInfo $docInfoUpdated): static
  696.     {
  697.         if (!$this->docInfoUpdated->contains($docInfoUpdated)) {
  698.             $this->docInfoUpdated->add($docInfoUpdated);
  699.             $docInfoUpdated->setEditor($this);
  700.         }
  701.         return $this;
  702.     }
  703.     public function removeDocInfoUpdated(DocInfo $docInfoUpdated): static
  704.     {
  705.         if ($this->docInfoUpdated->removeElement($docInfoUpdated)) {
  706.             // set the owning side to null (unless already changed)
  707.             if ($docInfoUpdated->getEditor() === $this) {
  708.                 $docInfoUpdated->setEditor(null);
  709.             }
  710.         }
  711.         return $this;
  712.     }
  713.     /**
  714.      * @return Collection<int, DocInfo>
  715.      */
  716.     public function getParentDocInfos(): Collection
  717.     {
  718.         return $this->parentDocInfos;
  719.     }
  720.     public function addParentDocInfo(DocInfo $parentDocInfo): static
  721.     {
  722.         if (!$this->parentDocInfos->contains($parentDocInfo)) {
  723.             $this->parentDocInfos->add($parentDocInfo);
  724.             $parentDocInfo->setParent($this);
  725.         }
  726.         return $this;
  727.     }
  728.     public function removeParentDocInfo(DocInfo $parentDocInfo): static
  729.     {
  730.         if ($this->parentDocInfos->removeElement($parentDocInfo)) {
  731.             // set the owning side to null (unless already changed)
  732.             if ($parentDocInfo->getParent() === $this) {
  733.                 $parentDocInfo->setParent(null);
  734.             }
  735.         }
  736.         return $this;
  737.     }
  738.     /* @return Collection<int, DiscussionMessage>
  739.      */
  740.     public function getDiscussionMessages(): Collection
  741.     {
  742.         return $this->discussionMessages;
  743.     }
  744.     public function addDiscussionMessage(DiscussionMessage $discussionMessage): static
  745.     {
  746.         if (!$this->discussionMessages->contains($discussionMessage)) {
  747.             $this->discussionMessages->add($discussionMessage);
  748.             $discussionMessage->setMessageBy($this);
  749.         }
  750.         return $this;
  751.     }
  752.     public function removeDiscussionMessage(DiscussionMessage $discussionMessage): static
  753.     {
  754.         if ($this->discussionMessages->removeElement($discussionMessage)) {
  755.             // set the owning side to null (unless already changed)
  756.             if ($discussionMessage->getMessageBy() === $this) {
  757.                 $discussionMessage->setMessageBy(null);
  758.             }
  759.         }
  760.         return $this;
  761.     }
  762.     /* @return Collection<int, Notifications>
  763.      */
  764.     public function getNotifications(): Collection
  765.     {
  766.         return $this->notifications;
  767.     }
  768.     public function addNotification(Notifications $notification): static
  769.     {
  770.         if (!$this->notifications->contains($notification)) {
  771.             $this->notifications->add($notification);
  772.             $notification->setUser($this);
  773.         }
  774.         return $this;
  775.     }
  776.     public function removeNotification(Notifications $notification): static
  777.     {
  778.         if ($this->notifications->removeElement($notification)) {
  779.             // set the owning side to null (unless already changed)
  780.             if ($notification->getUser() === $this) {
  781.                 $notification->setUser(null);
  782.             }
  783.         }
  784.         return $this;
  785.     }
  786.     public function setFullName(?string $fullName): static
  787.     {
  788.         $this->fullName $fullName;
  789.         return $this;
  790.     }
  791.     /**
  792.      * @return Collection<int, Absence>
  793.      */
  794.     public function getAbsences(): Collection
  795.     {
  796.         return $this->absences;
  797.     }
  798.     public function addAbsence(Absence $absence): static
  799.     {
  800.         if (!$this->absences->contains($absence)) {
  801.             $this->absences->add($absence);
  802.             $absence->setAuthor($this);
  803.         }
  804.         
  805.         return $this;
  806.     }
  807.     /* @return Collection<int, Punish>
  808.      */
  809.     public function getPunishes(): Collection
  810.     {
  811.         return $this->punishes;
  812.     }
  813.     public function addPunish(Punish $punish): static
  814.     {
  815.         if (!$this->punishes->contains($punish)) {
  816.             $this->punishes->add($punish);
  817.             $punish->setAuthor($this);
  818.         }
  819.         return $this;
  820.     }
  821.     
  822.     public function removePunish(Punish $punish): static
  823.     {
  824.         if ($this->punishes->removeElement($punish)) {
  825.             // set the owning side to null (unless already changed)
  826.             if ($punish->getAuthor() === $this) {
  827.                 $punish->setAuthor(null);
  828.             }
  829.         }
  830.         return $this;
  831.     }
  832.     public function removeAbsence(Absence $absence): static
  833.     {
  834.         if ($this->absences->removeElement($absence)) {
  835.             // set the owning side to null (unless already changed)
  836.             if ($absence->getAuthor() === $this) {
  837.                 $absence->setAuthor(null);
  838.             }
  839.         }
  840.         return $this;
  841.     }
  842.     /**
  843.      * @return Collection<int, Absence>
  844.      */
  845.     public function getAbsencesEdited(): Collection
  846.     {
  847.         return $this->absencesEdited;
  848.     }
  849.     public function addAbsencesEdited(Absence $absencesEdited): static
  850.     {
  851.         if (!$this->absencesEdited->contains($absencesEdited)) {
  852.             $this->absencesEdited->add($absencesEdited);
  853.             $absencesEdited->setEditor($this);
  854.         }
  855.         return $this;
  856.     }
  857.     public function removeAbsencesEdited(Absence $absencesEdited): static
  858.     {
  859.         if ($this->absencesEdited->removeElement($absencesEdited)) {
  860.             // set the owning side to null (unless already changed)
  861.             if ($absencesEdited->getEditor() === $this) {
  862.                 $absencesEdited->setEditor(null);
  863.             }
  864.         }
  865.         return $this;
  866.     }
  867.     /**
  868.      * @return Collection<int, CategoryEvent>
  869.      */
  870.     public function getCategoryEvents(): Collection
  871.     {
  872.         return $this->categoryEvents;
  873.     }
  874.     public function addCategoryEvent(CategoryEvent $categoryEvent): static
  875.     {
  876.         if (!$this->categoryEvents->contains($categoryEvent)) {
  877.             $this->categoryEvents->add($categoryEvent);
  878.             $categoryEvent->setAuthor($this);
  879.         }
  880.         return $this;
  881.     }
  882.     public function removeCategoryEvent(CategoryEvent $categoryEvent): static
  883.     {
  884.         if ($this->categoryEvents->removeElement($categoryEvent)) {
  885.             // set the owning side to null (unless already changed)
  886.             if ($categoryEvent->getAuthor() === $this) {
  887.                 $categoryEvent->setAuthor(null);
  888.             }
  889.         }
  890.         return $this;
  891.     }
  892.     /**
  893.      * @return Collection<int, CategoryEvent>
  894.      */
  895.     public function getCategoryEventsEdited(): Collection
  896.     {
  897.         return $this->categoryEventsEdited;
  898.     }
  899.     public function addCategoryEventsEdited(CategoryEvent $categoryEventsEdited): static
  900.     {
  901.         if (!$this->categoryEventsEdited->contains($categoryEventsEdited)) {
  902.             $this->categoryEventsEdited->add($categoryEventsEdited);
  903.             $categoryEventsEdited->setEditor($this);
  904.         }
  905.         return $this;
  906.     }
  907.     public function removeCategoryEventsEdited(CategoryEvent $categoryEventsEdited): static
  908.     {
  909.         if ($this->categoryEventsEdited->removeElement($categoryEventsEdited)) {
  910.             // set the owning side to null (unless already changed)
  911.             if ($categoryEventsEdited->getEditor() === $this) {
  912.                 $categoryEventsEdited->setEditor(null);
  913.             }
  914.         }
  915.         return $this;
  916.     }
  917.     /**
  918.      * @return Collection<int, ClassYear>
  919.      */
  920.     public function getClassYears(): Collection
  921.     {
  922.         return $this->classYears;
  923.     }
  924.     public function addClassYear(ClassYear $classYear): static
  925.     {
  926.         if (!$this->classYears->contains($classYear)) {
  927.             $this->classYears->add($classYear);
  928.             $classYear->setAuthor($this);
  929.         }
  930.         return $this;
  931.     }
  932.     public function removeClassYear(ClassYear $classYear): static
  933.     {
  934.         if ($this->classYears->removeElement($classYear)) {
  935.             // set the owning side to null (unless already changed)
  936.             if ($classYear->getAuthor() === $this) {
  937.                 $classYear->setAuthor(null);
  938.             }
  939.         }
  940.         return $this;
  941.     }
  942.     /**
  943.      * @return Collection<int, ClassYear>
  944.      */
  945.     public function getClassYearsEdited(): Collection
  946.     {
  947.         return $this->ClassYearsEdited;
  948.     }
  949.     public function addClassYearsEdited(ClassYear $classYearsEdited): static
  950.     {
  951.         if (!$this->ClassYearsEdited->contains($classYearsEdited)) {
  952.             $this->ClassYearsEdited->add($classYearsEdited);
  953.             $classYearsEdited->setEditor($this);
  954.         }
  955.         return $this;
  956.     }
  957.     public function removeClassYearsEdited(ClassYear $classYearsEdited): static
  958.     {
  959.         if ($this->ClassYearsEdited->removeElement($classYearsEdited)) {
  960.             // set the owning side to null (unless already changed)
  961.             if ($classYearsEdited->getEditor() === $this) {
  962.                 $classYearsEdited->setEditor(null);
  963.             }
  964.         }
  965.         return $this;
  966.     }
  967.     /**
  968.      * @return Collection<int, Event>
  969.      */
  970.     public function getEventsEdited(): Collection
  971.     {
  972.         return $this->eventsEdited;
  973.     }
  974.     public function addEventsEdited(Event $eventsEdited): static
  975.     {
  976.         if (!$this->eventsEdited->contains($eventsEdited)) {
  977.             $this->eventsEdited->add($eventsEdited);
  978.             $eventsEdited->setEditor($this);
  979.         }
  980.         return $this;
  981.     }
  982.     public function removeEventsEdited(Event $eventsEdited): static
  983.     {
  984.         if ($this->eventsEdited->removeElement($eventsEdited)) {
  985.             // set the owning side to null (unless already changed)
  986.             if ($eventsEdited->getEditor() === $this) {
  987.                 $eventsEdited->setEditor(null);
  988.             }
  989.         }
  990.         return $this;
  991.     }
  992.     /**
  993.      * @return Collection<int, Exams>
  994.      */
  995.     public function getExams(): Collection
  996.     {
  997.         return $this->exams;
  998.     }
  999.     public function addExam(Exams $exam): static
  1000.     {
  1001.         if (!$this->exams->contains($exam)) {
  1002.             $this->exams->add($exam);
  1003.             $exam->setAuthor($this);
  1004.         }
  1005.         return $this;
  1006.     }
  1007.     public function removeExam(Exams $exam): static
  1008.     {
  1009.         if ($this->exams->removeElement($exam)) {
  1010.             // set the owning side to null (unless already changed)
  1011.             if ($exam->getAuthor() === $this) {
  1012.                 $exam->setAuthor(null);
  1013.             }
  1014.         }
  1015.         return $this;
  1016.     }
  1017.     /**
  1018.      * @return Collection<int, Exams>
  1019.      */
  1020.     public function getExamsEdited(): Collection
  1021.     {
  1022.         return $this->examsEdited;
  1023.     }
  1024.     public function addExamsEdited(Exams $examsEdited): static
  1025.     {
  1026.         if (!$this->examsEdited->contains($examsEdited)) {
  1027.             $this->examsEdited->add($examsEdited);
  1028.             $examsEdited->setEditor($this);
  1029.         }
  1030.         return $this;
  1031.     }
  1032.     public function removeExamsEdited(Exams $examsEdited): static
  1033.     {
  1034.         if ($this->examsEdited->removeElement($examsEdited)) {
  1035.             // set the owning side to null (unless already changed)
  1036.             if ($examsEdited->getEditor() === $this) {
  1037.                 $examsEdited->setEditor(null);
  1038.             }
  1039.         }
  1040.         return $this;
  1041.     }
  1042.     /**
  1043.      * @return Collection<int, HomeWork>
  1044.      */
  1045.     public function getHomeworksEdited(): Collection
  1046.     {
  1047.         return $this->homeworksEdited;
  1048.     }
  1049.     public function addHomeworksEdited(HomeWork $homeworksEdited): static
  1050.     {
  1051.         if (!$this->homeworksEdited->contains($homeworksEdited)) {
  1052.             $this->homeworksEdited->add($homeworksEdited);
  1053.             $homeworksEdited->setEditor($this);
  1054.         }
  1055.         return $this;
  1056.     }
  1057.     public function removeHomeworksEdited(HomeWork $homeworksEdited): static
  1058.     {
  1059.         if ($this->homeworksEdited->removeElement($homeworksEdited)) {
  1060.             // set the owning side to null (unless already changed)
  1061.             if ($homeworksEdited->getEditor() === $this) {
  1062.                 $homeworksEdited->setEditor(null);
  1063.             }
  1064.         }
  1065.         return $this;
  1066.     }
  1067.     /**
  1068.      * @return Collection<int, Late>
  1069.      */
  1070.     public function getLates(): Collection
  1071.     {
  1072.         return $this->lates;
  1073.     }
  1074.     public function addLate(Late $late): static
  1075.     {
  1076.         if (!$this->lates->contains($late)) {
  1077.             $this->lates->add($late);
  1078.             $late->setAuthor($this);
  1079.         }
  1080.         return $this;
  1081.     }
  1082.     public function removeLate(Late $late): static
  1083.     {
  1084.         if ($this->lates->removeElement($late)) {
  1085.             // set the owning side to null (unless already changed)
  1086.             if ($late->getAuthor() === $this) {
  1087.                 $late->setAuthor(null);
  1088.             }
  1089.         }
  1090.         return $this;
  1091.     }
  1092.     /**
  1093.      * @return Collection<int, Late>
  1094.      */
  1095.     public function getLatesEdited(): Collection
  1096.     {
  1097.         return $this->latesEdited;
  1098.     }
  1099.     public function addLatesEdited(Late $latesEdited): static
  1100.     {
  1101.         if (!$this->latesEdited->contains($latesEdited)) {
  1102.             $this->latesEdited->add($latesEdited);
  1103.             $latesEdited->setEditor($this);
  1104.         }
  1105.         return $this;
  1106.     }
  1107.     public function removeLatesEdited(Late $latesEdited): static
  1108.     {
  1109.         if ($this->latesEdited->removeElement($latesEdited)) {
  1110.             // set the owning side to null (unless already changed)
  1111.             if ($latesEdited->getEditor() === $this) {
  1112.                 $latesEdited->setEditor(null);
  1113.             }
  1114.         }
  1115.         return $this;
  1116.     }
  1117.     /**
  1118.      * @return Collection<int, NewsCategory>
  1119.      */
  1120.     public function getNewsCategories(): Collection
  1121.     {
  1122.         return $this->newsCategories;
  1123.     }
  1124.     public function addNewsCategory(NewsCategory $newsCategory): static
  1125.     {
  1126.         if (!$this->newsCategories->contains($newsCategory)) {
  1127.             $this->newsCategories->add($newsCategory);
  1128.             $newsCategory->setAuthor($this);
  1129.         }
  1130.         return $this;
  1131.     }
  1132.     public function removeNewsCategory(NewsCategory $newsCategory): static
  1133.     {
  1134.         if ($this->newsCategories->removeElement($newsCategory)) {
  1135.             // set the owning side to null (unless already changed)
  1136.             if ($newsCategory->getAuthor() === $this) {
  1137.                 $newsCategory->setAuthor(null);
  1138.             }
  1139.         }
  1140.         return $this;
  1141.     }
  1142.     /**
  1143.      * @return Collection<int, NewsCategory>
  1144.      */
  1145.     public function getNewsCategoriesEdited(): Collection
  1146.     {
  1147.         return $this->newsCategoriesEdited;
  1148.     }
  1149.     public function addNewsCategoriesEdited(NewsCategory $newsCategoriesEdited): static
  1150.     {
  1151.         if (!$this->newsCategoriesEdited->contains($newsCategoriesEdited)) {
  1152.             $this->newsCategoriesEdited->add($newsCategoriesEdited);
  1153.             $newsCategoriesEdited->setEditor($this);
  1154.         }
  1155.         return $this;
  1156.     }
  1157.     public function removeNewsCategoriesEdited(NewsCategory $newsCategoriesEdited): static
  1158.     {
  1159.         if ($this->newsCategoriesEdited->removeElement($newsCategoriesEdited)) {
  1160.             // set the owning side to null (unless already changed)
  1161.             if ($newsCategoriesEdited->getEditor() === $this) {
  1162.                 $newsCategoriesEdited->setEditor(null);
  1163.             }
  1164.         }
  1165.         return $this;
  1166.     }
  1167.     /**
  1168.      * @return Collection<int, Note>
  1169.      */
  1170.     public function getNotes(): Collection
  1171.     {
  1172.         return $this->notes;
  1173.     }
  1174.     public function addNote(Note $note): static
  1175.     {
  1176.         if (!$this->notes->contains($note)) {
  1177.             $this->notes->add($note);
  1178.             $note->setAuthor($this);
  1179.         }
  1180.         return $this;
  1181.     }
  1182.     public function removeNote(Note $note): static
  1183.     {
  1184.         if ($this->notes->removeElement($note)) {
  1185.             // set the owning side to null (unless already changed)
  1186.             if ($note->getAuthor() === $this) {
  1187.                 $note->setAuthor(null);
  1188.             }
  1189.         }
  1190.         return $this;
  1191.     }
  1192.     /**
  1193.      * @return Collection<int, Note>
  1194.      */
  1195.     public function getNotesEdited(): Collection
  1196.     {
  1197.         return $this->notesEdited;
  1198.     }
  1199.     public function addNotesEdited(Note $notesEdited): static
  1200.     {
  1201.         if (!$this->notesEdited->contains($notesEdited)) {
  1202.             $this->notesEdited->add($notesEdited);
  1203.             $notesEdited->setEditor($this);
  1204.         }
  1205.         return $this;
  1206.     }
  1207.     public function removeNotesEdited(Note $notesEdited): static
  1208.     {
  1209.         if ($this->notesEdited->removeElement($notesEdited)) {
  1210.             // set the owning side to null (unless already changed)
  1211.             if ($notesEdited->getEditor() === $this) {
  1212.                 $notesEdited->setEditor(null);
  1213.             }
  1214.         }
  1215.         return $this;
  1216.     }
  1217.     /**
  1218.      * @return Collection<int, SchoolSection>
  1219.      */
  1220.     public function getSchoolSections(): Collection
  1221.     {
  1222.         return $this->schoolSections;
  1223.     }
  1224.     public function addSchoolSection(SchoolSection $schoolSection): static
  1225.     {
  1226.         if (!$this->schoolSections->contains($schoolSection)) {
  1227.             $this->schoolSections->add($schoolSection);
  1228.             $schoolSection->setAuthor($this);
  1229.         }
  1230.         return $this;
  1231.     }
  1232.     public function removeSchoolSection(SchoolSection $schoolSection): static
  1233.     {
  1234.         if ($this->schoolSections->removeElement($schoolSection)) {
  1235.             // set the owning side to null (unless already changed)
  1236.             if ($schoolSection->getAuthor() === $this) {
  1237.                 $schoolSection->setAuthor(null);
  1238.             }
  1239.         }
  1240.         return $this;
  1241.     }
  1242.     /**
  1243.      * @return Collection<int, SchoolSection>
  1244.      */
  1245.     public function getSchoolSectionsEdited(): Collection
  1246.     {
  1247.         return $this->schoolSectionsEdited;
  1248.     }
  1249.     public function addSchoolSectionsEdited(SchoolSection $schoolSectionsEdited): static
  1250.     {
  1251.         if (!$this->schoolSectionsEdited->contains($schoolSectionsEdited)) {
  1252.             $this->schoolSectionsEdited->add($schoolSectionsEdited);
  1253.             $schoolSectionsEdited->setEditor($this);
  1254.         }
  1255.         return $this;
  1256.     }
  1257.     public function removeSchoolSectionsEdited(SchoolSection $schoolSectionsEdited): static
  1258.     {
  1259.         if ($this->schoolSectionsEdited->removeElement($schoolSectionsEdited)) {
  1260.             // set the owning side to null (unless already changed)
  1261.             if ($schoolSectionsEdited->getEditor() === $this) {
  1262.                 $schoolSectionsEdited->setEditor(null);
  1263.             }
  1264.         }
  1265.         return $this;
  1266.     }
  1267.     /**
  1268.      * @return Collection<int, SchoolYear>
  1269.      */
  1270.     public function getSchoolYears(): Collection
  1271.     {
  1272.         return $this->schoolYears;
  1273.     }
  1274.     public function addSchoolYear(SchoolYear $schoolYear): static
  1275.     {
  1276.         if (!$this->schoolYears->contains($schoolYear)) {
  1277.             $this->schoolYears->add($schoolYear);
  1278.             $schoolYear->setAuthor($this);
  1279.         }
  1280.         return $this;
  1281.     }
  1282.     public function removeSchoolYear(SchoolYear $schoolYear): static
  1283.     {
  1284.         if ($this->schoolYears->removeElement($schoolYear)) {
  1285.             // set the owning side to null (unless already changed)
  1286.             if ($schoolYear->getAuthor() === $this) {
  1287.                 $schoolYear->setAuthor(null);
  1288.             }
  1289.         }
  1290.         return $this;
  1291.     }
  1292.     /**
  1293.      * @return Collection<int, SchoolYear>
  1294.      */
  1295.     public function getSchoolYearsEdited(): Collection
  1296.     {
  1297.         return $this->schoolYearsEdited;
  1298.     }
  1299.     public function addSchoolYearsEdited(SchoolYear $schoolYearsEdited): static
  1300.     {
  1301.         if (!$this->schoolYearsEdited->contains($schoolYearsEdited)) {
  1302.             $this->schoolYearsEdited->add($schoolYearsEdited);
  1303.             $schoolYearsEdited->setEditor($this);
  1304.         }
  1305.         return $this;
  1306.     }
  1307.     public function removeSchoolYearsEdited(SchoolYear $schoolYearsEdited): static
  1308.     {
  1309.         if ($this->schoolYearsEdited->removeElement($schoolYearsEdited)) {
  1310.             // set the owning side to null (unless already changed)
  1311.             if ($schoolYearsEdited->getEditor() === $this) {
  1312.                 $schoolYearsEdited->setEditor(null);
  1313.             }
  1314.         }
  1315.         return $this;
  1316.     }
  1317.     /**
  1318.      * @return Collection<int, Student>
  1319.      */
  1320.     public function getStudentsEdited(): Collection
  1321.     {
  1322.         return $this->studentsEdited;
  1323.     }
  1324.     public function addStudentsEdited(Student $studentsEdited): static
  1325.     {
  1326.         if (!$this->studentsEdited->contains($studentsEdited)) {
  1327.             $this->studentsEdited->add($studentsEdited);
  1328.             $studentsEdited->setEditor($this);
  1329.         }
  1330.         return $this;
  1331.     }
  1332.     public function removeStudentsEdited(Student $studentsEdited): static
  1333.     {
  1334.         if ($this->studentsEdited->removeElement($studentsEdited)) {
  1335.             // set the owning side to null (unless already changed)
  1336.             if ($studentsEdited->getEditor() === $this) {
  1337.                 $studentsEdited->setEditor(null);
  1338.             }
  1339.         }
  1340.         return $this;
  1341.     }
  1342.     /**
  1343.      * @return Collection<int, Subject>
  1344.      */
  1345.     public function getSubjectsEdited(): Collection
  1346.     {
  1347.         return $this->subjectsEdited;
  1348.     }
  1349.     public function addSubjectsEdited(Subject $subjectsEdited): static
  1350.     {
  1351.         if (!$this->subjectsEdited->contains($subjectsEdited)) {
  1352.             $this->subjectsEdited->add($subjectsEdited);
  1353.             $subjectsEdited->setEditor($this);
  1354.         }
  1355.         return $this;
  1356.     }
  1357.     public function removeSubjectsEdited(Subject $subjectsEdited): static
  1358.     {
  1359.         if ($this->subjectsEdited->removeElement($subjectsEdited)) {
  1360.             // set the owning side to null (unless already changed)
  1361.             if ($subjectsEdited->getEditor() === $this) {
  1362.                 $subjectsEdited->setEditor(null);
  1363.             }
  1364.         }
  1365.         return $this;
  1366.     }
  1367.     /**
  1368.      * @return Collection<int, SubjectGroup>
  1369.      */
  1370.     public function getSubjectGroups(): Collection
  1371.     {
  1372.         return $this->subjectGroups;
  1373.     }
  1374.     public function addSubjectGroup(SubjectGroup $subjectGroup): static
  1375.     {
  1376.         if (!$this->subjectGroups->contains($subjectGroup)) {
  1377.             $this->subjectGroups->add($subjectGroup);
  1378.             $subjectGroup->setAuthor($this);
  1379.         }
  1380.         return $this;
  1381.     }
  1382.     public function removeSubjectGroup(SubjectGroup $subjectGroup): static
  1383.     {
  1384.         if ($this->subjectGroups->removeElement($subjectGroup)) {
  1385.             // set the owning side to null (unless already changed)
  1386.             if ($subjectGroup->getAuthor() === $this) {
  1387.                 $subjectGroup->setAuthor(null);
  1388.             }
  1389.         }
  1390.         return $this;
  1391.     }
  1392.     /**
  1393.      * @return Collection<int, SubjectGroup>
  1394.      */
  1395.     public function getSubjectGroupsEdited(): Collection
  1396.     {
  1397.         return $this->subjectGroupsEdited;
  1398.     }
  1399.     public function addSubjectGroupsEdited(SubjectGroup $subjectGroupsEdited): static
  1400.     {
  1401.         if (!$this->subjectGroupsEdited->contains($subjectGroupsEdited)) {
  1402.             $this->subjectGroupsEdited->add($subjectGroupsEdited);
  1403.             $subjectGroupsEdited->setEditor($this);
  1404.         }
  1405.         return $this;
  1406.     }
  1407.     public function removeSubjectGroupsEdited(SubjectGroup $subjectGroupsEdited): static
  1408.     {
  1409.         if ($this->subjectGroupsEdited->removeElement($subjectGroupsEdited)) {
  1410.             // set the owning side to null (unless already changed)
  1411.             if ($subjectGroupsEdited->getEditor() === $this) {
  1412.                 $subjectGroupsEdited->setEditor(null);
  1413.             }
  1414.         }
  1415.         return $this;
  1416.     }
  1417.     /**
  1418.      * @return Collection<int, TheClass>
  1419.      */
  1420.     public function getTheClasses(): Collection
  1421.     {
  1422.         return $this->theClasses;
  1423.     }
  1424.     public function addTheClass(TheClass $theClass): static
  1425.     {
  1426.         if (!$this->theClasses->contains($theClass)) {
  1427.             $this->theClasses->add($theClass);
  1428.             $theClass->setAuthor($this);
  1429.         }
  1430.         return $this;
  1431.     }
  1432.     public function removeTheClass(TheClass $theClass): static
  1433.     {
  1434.         if ($this->theClasses->removeElement($theClass)) {
  1435.             // set the owning side to null (unless already changed)
  1436.             if ($theClass->getAuthor() === $this) {
  1437.                 $theClass->setAuthor(null);
  1438.             }
  1439.         }
  1440.         return $this;
  1441.     }
  1442.     /**
  1443.      * @return Collection<int, TheClass>
  1444.      */
  1445.     public function getTheClassesEdited(): Collection
  1446.     {
  1447.         return $this->theClassesEdited;
  1448.     }
  1449.     public function addTheClassesEdited(TheClass $theClassesEdited): static
  1450.     {
  1451.         if (!$this->theClassesEdited->contains($theClassesEdited)) {
  1452.             $this->theClassesEdited->add($theClassesEdited);
  1453.             $theClassesEdited->setEditor($this);
  1454.         }
  1455.         return $this;
  1456.     }
  1457.     public function removeTheClassesEdited(TheClass $theClassesEdited): static
  1458.     {
  1459.         if ($this->theClassesEdited->removeElement($theClassesEdited)) {
  1460.             // set the owning side to null (unless already changed)
  1461.             if ($theClassesEdited->getEditor() === $this) {
  1462.                 $theClassesEdited->setEditor(null);
  1463.             }
  1464.         }
  1465.         return $this;
  1466.     }
  1467.     public function getAuthor(): ?self
  1468.     {
  1469.         return $this->author;
  1470.     }
  1471.     public function setAuthor(?self $author): static
  1472.     {
  1473.         $this->author $author;
  1474.         return $this;
  1475.     }
  1476.     /**
  1477.      * @return Collection<int, self>
  1478.      */
  1479.     public function getUsers(): Collection
  1480.     {
  1481.         return $this->users;
  1482.     }
  1483.     public function addUser(self $user): static
  1484.     {
  1485.         if (!$this->users->contains($user)) {
  1486.             $this->users->add($user);
  1487.             $user->setAuthor($this);
  1488.         }
  1489.         return $this;
  1490.     }
  1491.     public function removeUser(self $user): static
  1492.     {
  1493.         if ($this->users->removeElement($user)) {
  1494.             // set the owning side to null (unless already changed)
  1495.             if ($user->getAuthor() === $this) {
  1496.                 $user->setAuthor(null);
  1497.             }
  1498.         }
  1499.         return $this;
  1500.     }
  1501.     public function getEditor(): ?self
  1502.     {
  1503.         return $this->editor;
  1504.     }
  1505.     public function setEditor(?self $editor): static
  1506.     {
  1507.         $this->editor $editor;
  1508.         return $this;
  1509.     }
  1510.     /**
  1511.      * @return Collection<int, self>
  1512.      */
  1513.     public function getUsersEdited(): Collection
  1514.     {
  1515.         return $this->usersEdited;
  1516.     }
  1517.     public function addUsersEdited(self $usersEdited): static
  1518.     {
  1519.         if (!$this->usersEdited->contains($usersEdited)) {
  1520.             $this->usersEdited->add($usersEdited);
  1521.             $usersEdited->setEditor($this);
  1522.         }
  1523.         return $this;
  1524.     }
  1525.     public function removeUsersEdited(self $usersEdited): static
  1526.     {
  1527.         if ($this->usersEdited->removeElement($usersEdited)) {
  1528.             // set the owning side to null (unless already changed)
  1529.             if ($usersEdited->getEditor() === $this) {
  1530.                 $usersEdited->setEditor(null);
  1531.             }
  1532.         }
  1533.         return $this;
  1534.     }
  1535.     /**
  1536.      * @return Collection<int, Student>
  1537.      */
  1538.     public function getStudentsCreated(): Collection
  1539.     {
  1540.         return $this->studentsCreated;
  1541.     }
  1542.     public function addStudentsCreated(Student $studentsCreated): static
  1543.     {
  1544.         if (!$this->studentsCreated->contains($studentsCreated)) {
  1545.             $this->studentsCreated->add($studentsCreated);
  1546.             $studentsCreated->setAuthor($this);
  1547.         }
  1548.         return $this;
  1549.     }
  1550.     public function removeStudentsCreated(Student $studentsCreated): static
  1551.     {
  1552.         if ($this->studentsCreated->removeElement($studentsCreated)) {
  1553.             // set the owning side to null (unless already changed)
  1554.             if ($studentsCreated->getAuthor() === $this) {
  1555.                 $studentsCreated->setAuthor(null);
  1556.             }
  1557.         }
  1558.         return $this;
  1559.     }
  1560.     /**
  1561.      * @return Collection<int, Subject>
  1562.      */
  1563.     public function getSubjectsCreated(): Collection
  1564.     {
  1565.         return $this->subjectsCreated;
  1566.     }
  1567.     public function addSubjectsCreated(Subject $subjectsCreated): static
  1568.     {
  1569.         if (!$this->subjectsCreated->contains($subjectsCreated)) {
  1570.             $this->subjectsCreated->add($subjectsCreated);
  1571.             $subjectsCreated->setAuthor($this);
  1572.         }
  1573.         return $this;
  1574.     }
  1575.     public function removeSubjectsCreated(Subject $subjectsCreated): static
  1576.     {
  1577.         if ($this->subjectsCreated->removeElement($subjectsCreated)) {
  1578.             // set the owning side to null (unless already changed)
  1579.             if ($subjectsCreated->getAuthor() === $this) {
  1580.                 $subjectsCreated->setAuthor(null);
  1581.             }
  1582.         }
  1583.         return $this;
  1584.     }
  1585.     /**
  1586.      * @return Collection<int, News>
  1587.      */
  1588.     public function getNewsEdited(): Collection
  1589.     {
  1590.         return $this->newsEdited;
  1591.     }
  1592.     public function addNewsEdited(News $newsEdited): static
  1593.     {
  1594.         if (!$this->newsEdited->contains($newsEdited)) {
  1595.             $this->newsEdited->add($newsEdited);
  1596.             $newsEdited->setEditor($this);
  1597.         }
  1598.         return $this;
  1599.     }
  1600.     public function removeNewsEdited(News $newsEdited): static
  1601.     {
  1602.         if ($this->newsEdited->removeElement($newsEdited)) {
  1603.             // set the owning side to null (unless already changed)
  1604.             if ($newsEdited->getEditor() === $this) {
  1605.                 $newsEdited->setEditor(null);
  1606.             }
  1607.         }
  1608.         return $this;
  1609.     }
  1610.     /**
  1611.      * @return Collection<int, PunishCategory>
  1612.      */
  1613.     public function getPunishCategories(): Collection
  1614.     {
  1615.         return $this->punishCategories;
  1616.     }
  1617.     public function addPunishCategory(PunishCategory $punishCategory): static
  1618.     {
  1619.         if (!$this->punishCategories->contains($punishCategory)) {
  1620.             $this->punishCategories->add($punishCategory);
  1621.             $punishCategory->setAuthor($this);
  1622.         }
  1623.         return $this;
  1624.     }
  1625.     public function removePunishCategory(PunishCategory $punishCategory): static
  1626.     {
  1627.         if ($this->punishCategories->removeElement($punishCategory)) {
  1628.             // set the owning side to null (unless already changed)
  1629.             if ($punishCategory->getAuthor() === $this) {
  1630.                 $punishCategory->setAuthor(null);
  1631.             }
  1632.         }
  1633.         return $this;
  1634.     }
  1635.     public function getLastRequestTs(): ?string
  1636.     {
  1637.         return $this->lastRequestTs;
  1638.     }
  1639.     public function setLastRequestTs(?string $lastRequestTs): static
  1640.     {
  1641.         $this->lastRequestTs $lastRequestTs;
  1642.         return $this;
  1643.     }
  1644.     public function getSchool(): ?School
  1645.     {
  1646.         return $this->school;
  1647.     }
  1648.     public function setSchool(?School $school): static
  1649.     {
  1650.         $this->school $school;
  1651.         return $this;
  1652.     }
  1653.     /**
  1654.      * @return Collection<int, DiscussionClassMessage>
  1655.      */
  1656.     public function getDiscussionClassMessages(): Collection
  1657.     {
  1658.         return $this->discussionClassMessages;
  1659.     }
  1660.     public function addDiscussionClassMessage(DiscussionClassMessage $discussionClassMessage): static
  1661.     {
  1662.         if (!$this->discussionClassMessages->contains($discussionClassMessage)) {
  1663.             $this->discussionClassMessages->add($discussionClassMessage);
  1664.             $discussionClassMessage->setAuthor($this);
  1665.         }
  1666.         return $this;
  1667.     }
  1668.     public function removeDiscussionClassMessage(DiscussionClassMessage $discussionClassMessage): static
  1669.     {
  1670.         if ($this->discussionClassMessages->removeElement($discussionClassMessage)) {
  1671.             // set the owning side to null (unless already changed)
  1672.             if ($discussionClassMessage->getAuthor() === $this) {
  1673.                 $discussionClassMessage->setAuthor(null);
  1674.             }
  1675.         }
  1676.         return $this;
  1677.     }
  1678.     /**
  1679.      * @return Collection<int, Agenda>
  1680.      */
  1681.     public function getAgendas(): Collection
  1682.     {
  1683.         return $this->agendas;
  1684.     }
  1685.     public function addAgenda(Agenda $agenda): static
  1686.     {
  1687.         if (!$this->agendas->contains($agenda)) {
  1688.             $this->agendas->add($agenda);
  1689.             $agenda->setAuthor($this);
  1690.         }
  1691.         return $this;
  1692.     }
  1693.     public function removeAgenda(Agenda $agenda): static
  1694.     {
  1695.         if ($this->agendas->removeElement($agenda)) {
  1696.             // set the owning side to null (unless already changed)
  1697.             if ($agenda->getAuthor() === $this) {
  1698.                 $agenda->setAuthor(null);
  1699.             }
  1700.         }
  1701.         return $this;
  1702.     }
  1703.     /**
  1704.      * @return Collection<int, ExamAgenda>
  1705.      */
  1706.     public function getExamAgendas(): Collection
  1707.     {
  1708.         return $this->examAgendas;
  1709.     }
  1710.     public function addExamAgenda(ExamAgenda $examAgenda): static
  1711.     {
  1712.         if (!$this->examAgendas->contains($examAgenda)) {
  1713.             $this->examAgendas->add($examAgenda);
  1714.             $examAgenda->setAuthor($this);
  1715.         }
  1716.         return $this;
  1717.     }
  1718.     public function removeExamAgenda(ExamAgenda $examAgenda): static
  1719.     {
  1720.         if ($this->examAgendas->removeElement($examAgenda)) {
  1721.             // set the owning side to null (unless already changed)
  1722.             if ($examAgenda->getAuthor() === $this) {
  1723.                 $examAgenda->setAuthor(null);
  1724.             }
  1725.         }
  1726.         return $this;
  1727.     }
  1728.     /**
  1729.      * @return Collection<int, SubSequence>
  1730.      */
  1731.     public function getSubSequences(): Collection
  1732.     {
  1733.         return $this->subSequences;
  1734.     }
  1735.     public function addSubSequence(SubSequence $subSequence): static
  1736.     {
  1737.         if (!$this->subSequences->contains($subSequence)) {
  1738.             $this->subSequences->add($subSequence);
  1739.             $subSequence->setAuthor($this);
  1740.         }
  1741.         return $this;
  1742.     }
  1743.     public function removeSubSequence(SubSequence $subSequence): static
  1744.     {
  1745.         if ($this->subSequences->removeElement($subSequence)) {
  1746.             // set the owning side to null (unless already changed)
  1747.             if ($subSequence->getAuthor() === $this) {
  1748.                 $subSequence->setAuthor(null);
  1749.             }
  1750.         }
  1751.         return $this;
  1752.     }
  1753.     /**
  1754.      * @return Collection<int, Quarter>
  1755.      */
  1756.     public function getQuarters(): Collection
  1757.     {
  1758.         return $this->quarters;
  1759.     }
  1760.     public function addQuarter(Quarter $quarter): static
  1761.     {
  1762.         if (!$this->quarters->contains($quarter)) {
  1763.             $this->quarters->add($quarter);
  1764.             $quarter->setAuthor($this);
  1765.         }
  1766.         return $this;
  1767.     }
  1768.     public function removeQuarter(Quarter $quarter): static
  1769.     {
  1770.         if ($this->quarters->removeElement($quarter)) {
  1771.             // set the owning side to null (unless already changed)
  1772.             if ($quarter->getAuthor() === $this) {
  1773.                 $quarter->setAuthor(null);
  1774.             }
  1775.         }
  1776.         return $this;
  1777.     }
  1778.     /**
  1779.      * @return Collection<int, SubNote>
  1780.      */
  1781.     public function getSubNotes(): Collection
  1782.     {
  1783.         return $this->subNotes;
  1784.     }
  1785.     public function addSubNote(SubNote $subNote): static
  1786.     {
  1787.         if (!$this->subNotes->contains($subNote)) {
  1788.             $this->subNotes->add($subNote);
  1789.             $subNote->setAuthor($this);
  1790.         }
  1791.         return $this;
  1792.     }
  1793.     public function removeSubNote(SubNote $subNote): static
  1794.     {
  1795.         if ($this->subNotes->removeElement($subNote)) {
  1796.             // set the owning side to null (unless already changed)
  1797.             if ($subNote->getAuthor() === $this) {
  1798.                 $subNote->setAuthor(null);
  1799.             }
  1800.         }
  1801.         return $this;
  1802.     }
  1803.     /**
  1804.      * @return Collection<int, AgendaDay>
  1805.      */
  1806.     public function getAgendaDays(): Collection
  1807.     {
  1808.         return $this->agendaDays;
  1809.     }
  1810.     public function addAgendaDay(AgendaDay $agendaDay): static
  1811.     {
  1812.         if (!$this->agendaDays->contains($agendaDay)) {
  1813.             $this->agendaDays->add($agendaDay);
  1814.             $agendaDay->setAuthor($this);
  1815.         }
  1816.         return $this;
  1817.     }
  1818.     public function removeAgendaDay(AgendaDay $agendaDay): static
  1819.     {
  1820.         if ($this->agendaDays->removeElement($agendaDay)) {
  1821.             // set the owning side to null (unless already changed)
  1822.             if ($agendaDay->getAuthor() === $this) {
  1823.                 $agendaDay->setAuthor(null);
  1824.             }
  1825.         }
  1826.         return $this;
  1827.     }
  1828.     /**
  1829.      * @return Collection<int, AgendaElement>
  1830.      */
  1831.     public function getAgendaElements(): Collection
  1832.     {
  1833.         return $this->agendaElements;
  1834.     }
  1835.     public function addAgendaElement(AgendaElement $agendaElement): static
  1836.     {
  1837.         if (!$this->agendaElements->contains($agendaElement)) {
  1838.             $this->agendaElements->add($agendaElement);
  1839.             $agendaElement->setAuthor($this);
  1840.         }
  1841.         return $this;
  1842.     }
  1843.     public function removeAgendaElement(AgendaElement $agendaElement): static
  1844.     {
  1845.         if ($this->agendaElements->removeElement($agendaElement)) {
  1846.             // set the owning side to null (unless already changed)
  1847.             if ($agendaElement->getAuthor() === $this) {
  1848.                 $agendaElement->setAuthor(null);
  1849.             }
  1850.         }
  1851.         return $this;
  1852.     }
  1853.     /**
  1854.      * @return Collection<int, ExamAgendaDay>
  1855.      */
  1856.     public function getExamAgendaDays(): Collection
  1857.     {
  1858.         return $this->examAgendaDays;
  1859.     }
  1860.     public function addExamAgendaDay(ExamAgendaDay $examAgendaDay): static
  1861.     {
  1862.         if (!$this->examAgendaDays->contains($examAgendaDay)) {
  1863.             $this->examAgendaDays->add($examAgendaDay);
  1864.             $examAgendaDay->setAuthor($this);
  1865.         }
  1866.         return $this;
  1867.     }
  1868.     public function removeExamAgendaDay(ExamAgendaDay $examAgendaDay): static
  1869.     {
  1870.         if ($this->examAgendaDays->removeElement($examAgendaDay)) {
  1871.             // set the owning side to null (unless already changed)
  1872.             if ($examAgendaDay->getAuthor() === $this) {
  1873.                 $examAgendaDay->setAuthor(null);
  1874.             }
  1875.         }
  1876.         return $this;
  1877.     }
  1878.     /**
  1879.      * @return Collection<int, ExamAgendaElement>
  1880.      */
  1881.     public function getExamAgendaElements(): Collection
  1882.     {
  1883.         return $this->examAgendaElements;
  1884.     }
  1885.     public function addExamAgendaElement(ExamAgendaElement $examAgendaElement): static
  1886.     {
  1887.         if (!$this->examAgendaElements->contains($examAgendaElement)) {
  1888.             $this->examAgendaElements->add($examAgendaElement);
  1889.             $examAgendaElement->setAuthor($this);
  1890.         }
  1891.         return $this;
  1892.     }
  1893.     public function removeExamAgendaElement(ExamAgendaElement $examAgendaElement): static
  1894.     {
  1895.         if ($this->examAgendaElements->removeElement($examAgendaElement)) {
  1896.             // set the owning side to null (unless already changed)
  1897.             if ($examAgendaElement->getAuthor() === $this) {
  1898.                 $examAgendaElement->setAuthor(null);
  1899.             }
  1900.         }
  1901.         return $this;
  1902.     }
  1903.     /**
  1904.      * @return Collection<int, Appreciation>
  1905.      */
  1906.     public function getAppreciations(): Collection
  1907.     {
  1908.         return $this->appreciations;
  1909.     }
  1910.     public function addAppreciation(Appreciation $appreciation): static
  1911.     {
  1912.         if (!$this->appreciations->contains($appreciation)) {
  1913.             $this->appreciations->add($appreciation);
  1914.             $appreciation->setAuthor($this);
  1915.         }
  1916.         return $this;
  1917.     }
  1918.     public function removeAppreciation(Appreciation $appreciation): static
  1919.     {
  1920.         if ($this->appreciations->removeElement($appreciation)) {
  1921.             // set the owning side to null (unless already changed)
  1922.             if ($appreciation->getAuthor() === $this) {
  1923.                 $appreciation->setAuthor(null);
  1924.             }
  1925.         }
  1926.         return $this;
  1927.     }
  1928.     
  1929.     /**
  1930.      * @return Collection<int, LocalAccount>
  1931.      */
  1932.     public function getLocalAccounts(): Collection
  1933.     {
  1934.         return $this->localAccounts;
  1935.     }
  1936.     public function addLocalAccount(LocalAccount $localAccount): static
  1937.     {
  1938.         if (!$this->localAccounts->contains($localAccount)) {
  1939.             $this->localAccounts->add($localAccount);
  1940.             $localAccount->setUser($this);
  1941.         }
  1942.         return $this;
  1943.     }
  1944.     public function removeLocalAccount(LocalAccount $localAccount): static
  1945.     {
  1946.         if ($this->localAccounts->removeElement($localAccount)) {
  1947.             // set the owning side to null (unless already changed)
  1948.             if ($localAccount->getUser() === $this) {
  1949.                 $localAccount->setUser(null);
  1950.             }
  1951.         }
  1952.         return $this;
  1953.     }
  1954.     /**
  1955.      * @return Collection<int, NewsBookmark>
  1956.      */
  1957.     public function getNewsBookmarks(): Collection
  1958.     {
  1959.         return $this->newsBookmarks;
  1960.     }
  1961.     public function addNewsBookmark(NewsBookmark $newsBookmark): static
  1962.     {
  1963.         if (!$this->newsBookmarks->contains($newsBookmark)) {
  1964.             $this->newsBookmarks->add($newsBookmark);
  1965.             $newsBookmark->setUser($this);
  1966.         }
  1967.         return $this;
  1968.     }
  1969.     /**
  1970.      * @return Collection<int, ScolarityHistory>
  1971.      */
  1972.     public function getScolarityHistories(): Collection
  1973.     {
  1974.         return $this->scolarityHistories;
  1975.     }
  1976.     public function addScolarityHistory(ScolarityHistory $scolarityHistory): static
  1977.     {
  1978.         if (!$this->scolarityHistories->contains($scolarityHistory)) {
  1979.             $this->scolarityHistories->add($scolarityHistory);
  1980.             $scolarityHistory->setAuthor($this);
  1981.         }
  1982.         return $this;
  1983.     }
  1984.     public function removeNewsBookmark(NewsBookmark $newsBookmark): static
  1985.     {
  1986.         if ($this->newsBookmarks->removeElement($newsBookmark)) {
  1987.             // set the owning side to null (unless already changed)
  1988.             if ($newsBookmark->getUser() === $this) {
  1989.                 $newsBookmark->setUser(null);
  1990.             }
  1991.             return $this;
  1992.         }
  1993.     }
  1994.     public function removeScolarityHistory(ScolarityHistory $scolarityHistory): static
  1995.     {
  1996.         if ($this->scolarityHistories->removeElement($scolarityHistory)) {
  1997.             // set the owning side to null (unless already changed)
  1998.             if ($scolarityHistory->getAuthor() === $this) {
  1999.                 $scolarityHistory->setAuthor(null);
  2000.             }
  2001.         }
  2002.         return $this;
  2003.     }
  2004.     /**
  2005.      * @return Collection<int, HomeworkBookmark>
  2006.      */
  2007.     public function getHomeworkBookmarks(): Collection
  2008.     {
  2009.         return $this->homeworkBookmarks;
  2010.     }
  2011.     public function addHomeworkBookmark(HomeworkBookmark $homeworkBookmark): static
  2012.     {
  2013.         if (!$this->homeworkBookmarks->contains($homeworkBookmark)) {
  2014.             $this->homeworkBookmarks->add($homeworkBookmark);
  2015.             $homeworkBookmark->setUser($this);
  2016.         }
  2017.         return $this;
  2018.     }
  2019.     /**
  2020.      * @return Collection<int, ScolarityHistoryEdition>
  2021.      */
  2022.     public function getScolarityHistoryEditions(): Collection
  2023.     {
  2024.         return $this->scolarityHistoryEditions;
  2025.     }
  2026.     public function addScolarityHistoryEditon(ScolarityHistoryEdition $scolarityHistoryEdition): static
  2027.     {
  2028.         if (!$this->scolarityHistoryEditions->contains($scolarityHistoryEdition)) {
  2029.             $this->scolarityHistoryEditions->add($scolarityHistoryEdition);
  2030.             $scolarityHistoryEdition->setAuthor($this);
  2031.         }
  2032.         return $this;
  2033.     }
  2034.     public function removeHomeworkBookmark(HomeworkBookmark $homeworkBookmark): static
  2035.     {
  2036.         if ($this->homeworkBookmarks->removeElement($homeworkBookmark)) {
  2037.             // set the owning side to null (unless already changed)
  2038.             if ($homeworkBookmark->getUser() === $this) {
  2039.                 $homeworkBookmark->setUser(null);
  2040.             }
  2041.             return $this;
  2042.         }
  2043.     }
  2044.     public function removeScolarityHistoryEdition(ScolarityHistoryEdition $scolarityHistoryEdition): static
  2045.     {
  2046.         if ($this->scolarityHistoryEditions->removeElement($scolarityHistoryEdition)) {
  2047.             // set the owning side to null (unless already changed)
  2048.             if ($scolarityHistoryEdition->getAuthor() === $this) {
  2049.                 $scolarityHistoryEdition->setAuthor(null);
  2050.             }
  2051.         }
  2052.         return $this;
  2053.     }
  2054.     /**
  2055.      * @return Collection<int, JustifyAbsence>
  2056.      */
  2057.     public function getJustifyAbsences(): Collection
  2058.     {
  2059.         return $this->justifyAbsences;
  2060.     }
  2061.     public function addJustifyAbsence(JustifyAbsence $justifyAbsence): static
  2062.     {
  2063.         if (!$this->justifyAbsences->contains($justifyAbsence)) {
  2064.             $this->justifyAbsences->add($justifyAbsence);
  2065.             $justifyAbsence->setAuthor($this);
  2066.         }
  2067.         return $this;
  2068.     }
  2069.     public function removeJustifyAbsence(JustifyAbsence $justifyAbsence): static
  2070.     {
  2071.         if ($this->justifyAbsences->removeElement($justifyAbsence)) {
  2072.             // set the owning side to null (unless already changed)
  2073.             if ($justifyAbsence->getAuthor() === $this) {
  2074.                 $justifyAbsence->setAuthor(null);
  2075.             }
  2076.         }
  2077.         return $this;
  2078.     }
  2079.     /**
  2080.      * @return Collection<int, VerbalProcess>
  2081.      */
  2082.     public function getVerbalProcesses(): Collection
  2083.     {
  2084.         return $this->verbalProcesses;
  2085.     }
  2086.     public function addVerbalProcess(VerbalProcess $verbalProcess): static
  2087.     {
  2088.         if (!$this->verbalProcesses->contains($verbalProcess)) {
  2089.             $this->verbalProcesses->add($verbalProcess);
  2090.             $verbalProcess->setAuthor($this);
  2091.         }
  2092.         return $this;
  2093.     }
  2094.     public function removeVerbalProcess(VerbalProcess $verbalProcess): static
  2095.     {
  2096.         if ($this->verbalProcesses->removeElement($verbalProcess)) {
  2097.             // set the owning side to null (unless already changed)
  2098.             if ($verbalProcess->getAuthor() === $this) {
  2099.                 $verbalProcess->setAuthor(null);
  2100.             }
  2101.         }
  2102.         return $this;
  2103.     }
  2104.     /**
  2105.      * @return Collection<int, AbsenceDisciplineConcileConfig>
  2106.      */
  2107.     public function getAbsenceDisciplineConcileConfigs(): Collection
  2108.     {
  2109.         return $this->absenceDisciplineConcileConfigs;
  2110.     }
  2111.     public function addAbsenceDisciplineConcileConfig(AbsenceDisciplineConcileConfig $absenceDisciplineConcileConfig): static
  2112.     {
  2113.         if (!$this->absenceDisciplineConcileConfigs->contains($absenceDisciplineConcileConfig)) {
  2114.             $this->absenceDisciplineConcileConfigs->add($absenceDisciplineConcileConfig);
  2115.             $absenceDisciplineConcileConfig->setAuthor($this);
  2116.         }
  2117.         return $this;
  2118.     }
  2119.     public function removeAbsenceDisciplineConcileConfig(AbsenceDisciplineConcileConfig $absenceDisciplineConcileConfig): static
  2120.     {
  2121.         if ($this->absenceDisciplineConcileConfigs->removeElement($absenceDisciplineConcileConfig)) {
  2122.             // set the owning side to null (unless already changed)
  2123.             if ($absenceDisciplineConcileConfig->getAuthor() === $this) {
  2124.                 $absenceDisciplineConcileConfig->setAuthor(null);
  2125.             }
  2126.         }
  2127.         return $this;
  2128.     }
  2129.     /**
  2130.      * @return Collection<int, TheClass>
  2131.      */
  2132.     public function getTheClassesTeached(): Collection
  2133.     {
  2134.         return $this->theClassesTeached;
  2135.     }
  2136.     public function addTheClassesTeached(TheClass $theClassesTeached): static
  2137.     {
  2138.         if (!$this->theClassesTeached->contains($theClassesTeached)) {
  2139.             $this->theClassesTeached->add($theClassesTeached);
  2140.             $theClassesTeached->setProf($this);
  2141.         }
  2142.         return $this;
  2143.     }
  2144.     public function removeTheClassesTeached(TheClass $theClassesTeached): static
  2145.     {
  2146.         if ($this->theClassesTeached->removeElement($theClassesTeached)) {
  2147.             // set the owning side to null (unless already changed)
  2148.             if ($theClassesTeached->getProf() === $this) {
  2149.                 $theClassesTeached->setProf(null);
  2150.             }
  2151.         }
  2152.         return $this;
  2153.     }
  2154.     /**
  2155.      * @return Collection<int, PrimaryNote>
  2156.      */
  2157.     public function getPrimaryNotes(): Collection
  2158.     {
  2159.         return $this->primaryNotes;
  2160.     }
  2161.     public function addPrimaryNote(PrimaryNote $primaryNote): static
  2162.     {
  2163.         if (!$this->primaryNotes->contains($primaryNote)) {
  2164.             $this->primaryNotes->add($primaryNote);
  2165.             $primaryNote->setAuthor($this);
  2166.         }
  2167.         return $this;
  2168.     }
  2169.     public function removePrimaryNote(PrimaryNote $primaryNote): static
  2170.     {
  2171.         if ($this->primaryNotes->removeElement($primaryNote)) {
  2172.             // set the owning side to null (unless already changed)
  2173.             if ($primaryNote->getAuthor() === $this) {
  2174.                 $primaryNote->setAuthor(null);
  2175.             }
  2176.         }
  2177.         return $this;
  2178.     }
  2179.     /**
  2180.      * @return Collection<int, VerbalProcessCategory>
  2181.      */
  2182.     public function getVerbalProcessCategories(): Collection
  2183.     {
  2184.         return $this->verbalProcessCategories;
  2185.     }
  2186.     public function addVerbalProcessCategory(VerbalProcessCategory $verbalProcessCategory): static
  2187.     {
  2188.         if (!$this->verbalProcessCategories->contains($verbalProcessCategory)) {
  2189.             $this->verbalProcessCategories->add($verbalProcessCategory);
  2190.             $verbalProcessCategory->setAuthor($this);
  2191.         }
  2192.         return $this;
  2193.     }
  2194.     public function removeVerbalProcessCategory(VerbalProcessCategory $verbalProcessCategory): static
  2195.     {
  2196.         if ($this->verbalProcessCategories->removeElement($verbalProcessCategory)) {
  2197.             // set the owning side to null (unless already changed)
  2198.             if ($verbalProcessCategory->getAuthor() === $this) {
  2199.                 $verbalProcessCategory->setAuthor(null);
  2200.             }
  2201.         }
  2202.         return $this;
  2203.     }
  2204.     public function getTheme(): ?string
  2205.     {
  2206.         return $this->theme;
  2207.     }
  2208.     public function setTheme(?string $theme): static
  2209.     {
  2210.         $this->theme $theme;
  2211.         return $this;
  2212.     }
  2213.     public function getPicture(): ?string
  2214.     {
  2215.         return $this->picture;
  2216.     }
  2217.     public function setPicture(?string $picture): static
  2218.     {
  2219.         $this->picture $picture;
  2220.         return $this;
  2221.     }
  2222.     public function getSexe(): ?string
  2223.     {
  2224.         return $this->sexe;
  2225.     }
  2226.     public function setSexe(?string $sexe): static
  2227.     {
  2228.         $this->sexe $sexe;
  2229.         return $this;
  2230.     }
  2231.     /**
  2232.      * @return Collection<int, UserAndroidToken>
  2233.      */
  2234.     public function getUserAndroidTokens(): Collection
  2235.     {
  2236.         return $this->userAndroidTokens;
  2237.     }
  2238.     public function addUserAndroidToken(UserAndroidToken $userAndroidToken): static
  2239.     {
  2240.         if (!$this->userAndroidTokens->contains($userAndroidToken)) {
  2241.             $this->userAndroidTokens->add($userAndroidToken);
  2242.             $userAndroidToken->setUser($this);
  2243.         }
  2244.         return $this;
  2245.     }
  2246.     public function removeUserAndroidToken(UserAndroidToken $userAndroidToken): static
  2247.     {
  2248.         if ($this->userAndroidTokens->removeElement($userAndroidToken)) {
  2249.             // set the owning side to null (unless already changed)
  2250.             if ($userAndroidToken->getUser() === $this) {
  2251.                 $userAndroidToken->setUser(null);
  2252.             }
  2253.         }
  2254.         return $this;
  2255.     }
  2256.     /**
  2257.      * @return Collection<int, UserIphoneToken>
  2258.      */
  2259.     public function getUserIphoneTokens(): Collection
  2260.     {
  2261.         return $this->userIphoneTokens;
  2262.     }
  2263.     public function addUserIphoneToken(UserIphoneToken $userIphoneToken): static
  2264.     {
  2265.         if (!$this->userIphoneTokens->contains($userIphoneToken)) {
  2266.             $this->userIphoneTokens->add($userIphoneToken);
  2267.             $userIphoneToken->setUser($this);
  2268.         }
  2269.         return $this;
  2270.     }
  2271.     public function removeUserIphoneToken(UserIphoneToken $userIphoneToken): static
  2272.     {
  2273.         if ($this->userIphoneTokens->removeElement($userIphoneToken)) {
  2274.             // set the owning side to null (unless already changed)
  2275.             if ($userIphoneToken->getUser() === $this) {
  2276.                 $userIphoneToken->setUser(null);
  2277.             }
  2278.         }
  2279.         return $this;
  2280.     }
  2281.     public function getLocalPhoneLang(): ?string
  2282.     {
  2283.         return $this->localPhoneLang;
  2284.     }
  2285.     public function setLocalPhoneLang(?string $localPhoneLang): static
  2286.     {
  2287.         $this->localPhoneLang $localPhoneLang;
  2288.         return $this;
  2289.     }
  2290.     /**
  2291.      * @return Collection<int, AbsenceBlameConfig>
  2292.      */
  2293.     public function getAbsenceBlameConfigs(): Collection
  2294.     {
  2295.         return $this->absenceBlameConfigs;
  2296.     }
  2297.     public function addAbsenceBlameConfig(AbsenceBlameConfig $absenceBlameConfig): static
  2298.     {
  2299.         if (!$this->absenceBlameConfigs->contains($absenceBlameConfig)) {
  2300.             $this->absenceBlameConfigs->add($absenceBlameConfig);
  2301.             $absenceBlameConfig->setAuthor($this);
  2302.         }
  2303.         return $this;
  2304.     }
  2305.     public function removeAbsenceBlameConfig(AbsenceBlameConfig $absenceBlameConfig): static
  2306.     {
  2307.         if ($this->absenceBlameConfigs->removeElement($absenceBlameConfig)) {
  2308.             // set the owning side to null (unless already changed)
  2309.             if ($absenceBlameConfig->getAuthor() === $this) {
  2310.                 $absenceBlameConfig->setAuthor(null);
  2311.             }
  2312.         }
  2313.         return $this;
  2314.     }
  2315.     /**
  2316.      * @return Collection<int, AbsenceWarningConfig>
  2317.      */
  2318.     public function getAbsenceWarningConfigs(): Collection
  2319.     {
  2320.         return $this->absenceWarningConfigs;
  2321.     }
  2322.     public function addAbsenceWarningConfig(AbsenceWarningConfig $absenceWarningConfig): static
  2323.     {
  2324.         if (!$this->absenceWarningConfigs->contains($absenceWarningConfig)) {
  2325.             $this->absenceWarningConfigs->add($absenceWarningConfig);
  2326.             $absenceWarningConfig->setAuthor($this);
  2327.         }
  2328.         return $this;
  2329.     }
  2330.     public function removeAbsenceWarningConfig(AbsenceWarningConfig $absenceWarningConfig): static
  2331.     {
  2332.         if ($this->absenceWarningConfigs->removeElement($absenceWarningConfig)) {
  2333.             // set the owning side to null (unless already changed)
  2334.             if ($absenceWarningConfig->getAuthor() === $this) {
  2335.                 $absenceWarningConfig->setAuthor(null);
  2336.             }
  2337.         }
  2338.         return $this;
  2339.     }
  2340.     /**
  2341.      * @return Collection<int, AbsencePunishConfig>
  2342.      */
  2343.     public function getAbsencePunishConfigs(): Collection
  2344.     {
  2345.         return $this->absencePunishConfigs;
  2346.     }
  2347.     public function addAbsencePunishConfig(AbsencePunishConfig $absencePunishConfig): static
  2348.     {
  2349.         if (!$this->absencePunishConfigs->contains($absencePunishConfig)) {
  2350.             $this->absencePunishConfigs->add($absencePunishConfig);
  2351.             $absencePunishConfig->setAuthor($this);
  2352.         }
  2353.         return $this;
  2354.     }
  2355.     public function removeAbsencePunishConfig(AbsencePunishConfig $absencePunishConfig): static
  2356.     {
  2357.         if ($this->absencePunishConfigs->removeElement($absencePunishConfig)) {
  2358.             // set the owning side to null (unless already changed)
  2359.             if ($absencePunishConfig->getAuthor() === $this) {
  2360.                 $absencePunishConfig->setAuthor(null);
  2361.             }
  2362.         }
  2363.         return $this;
  2364.     }
  2365.     /**
  2366.      * @return Collection<int, AbsenceExclusionConfig>
  2367.      */
  2368.     public function getAbsenceExclusionConfigs(): Collection
  2369.     {
  2370.         return $this->absenceExclusionConfigs;
  2371.     }
  2372.     public function addAbsenceExclusionConfig(AbsenceExclusionConfig $absenceExclusionConfig): static
  2373.     {
  2374.         if (!$this->absenceExclusionConfigs->contains($absenceExclusionConfig)) {
  2375.             $this->absenceExclusionConfigs->add($absenceExclusionConfig);
  2376.             $absenceExclusionConfig->setAuthor($this);
  2377.         }
  2378.         return $this;
  2379.     }
  2380.     public function removeAbsenceExclusionConfig(AbsenceExclusionConfig $absenceExclusionConfig): static
  2381.     {
  2382.         if ($this->absenceExclusionConfigs->removeElement($absenceExclusionConfig)) {
  2383.             // set the owning side to null (unless already changed)
  2384.             if ($absenceExclusionConfig->getAuthor() === $this) {
  2385.                 $absenceExclusionConfig->setAuthor(null);
  2386.             }
  2387.         }
  2388.         return $this;
  2389.     }
  2390.     /**
  2391.      * @return Collection<int, GlobalDisciplineEnabledConfig>
  2392.      */
  2393.     public function getGlobalDisciplineEnabledConfigs(): Collection
  2394.     {
  2395.         return $this->globalDisciplineEnabledConfigs;
  2396.     }
  2397.     public function addGlobalDisciplineEnabledConfig(GlobalDisciplineEnabledConfig $globalDisciplineEnabledConfig): static
  2398.     {
  2399.         if (!$this->globalDisciplineEnabledConfigs->contains($globalDisciplineEnabledConfig)) {
  2400.             $this->globalDisciplineEnabledConfigs->add($globalDisciplineEnabledConfig);
  2401.             $globalDisciplineEnabledConfig->setAuthor($this);
  2402.         }
  2403.         return $this;
  2404.     }
  2405.     public function removeGlobalDisciplineEnabledConfig(GlobalDisciplineEnabledConfig $globalDisciplineEnabledConfig): static
  2406.     {
  2407.         if ($this->globalDisciplineEnabledConfigs->removeElement($globalDisciplineEnabledConfig)) {
  2408.             // set the owning side to null (unless already changed)
  2409.             if ($globalDisciplineEnabledConfig->getAuthor() === $this) {
  2410.                 $globalDisciplineEnabledConfig->setAuthor(null);
  2411.             }
  2412.         }
  2413.         return $this;
  2414.     }
  2415.     /**
  2416.      * @return Collection<int, AbsenceRetainedConfig>
  2417.      */
  2418.     public function getAbsenceRetainedConfigs(): Collection
  2419.     {
  2420.         return $this->absenceRetainedConfigs;
  2421.     }
  2422.     public function addAbsenceRetainedConfig(AbsenceRetainedConfig $absenceRetainedConfig): static
  2423.     {
  2424.         if (!$this->absenceRetainedConfigs->contains($absenceRetainedConfig)) {
  2425.             $this->absenceRetainedConfigs->add($absenceRetainedConfig);
  2426.             $absenceRetainedConfig->setAuthor($this);
  2427.         }
  2428.         return $this;
  2429.     }
  2430.     public function removeAbsenceRetainedConfig(AbsenceRetainedConfig $absenceRetainedConfig): static
  2431.     {
  2432.         if ($this->absenceRetainedConfigs->removeElement($absenceRetainedConfig)) {
  2433.             // set the owning side to null (unless already changed)
  2434.             if ($absenceRetainedConfig->getAuthor() === $this) {
  2435.                 $absenceRetainedConfig->setAuthor(null);
  2436.             }
  2437.         }
  2438.         return $this;
  2439.     }
  2440.     public function getUserToken(): ?string
  2441.     {
  2442.         return $this->userToken;
  2443.     }
  2444.     public function setUserToken(?string $userToken): static
  2445.     {
  2446.         $this->userToken $userToken;
  2447.         return $this;
  2448.     }
  2449.     /**
  2450.      * @return Collection<int, DisciplineConcile>
  2451.      */
  2452.     public function getDisciplineConciles(): Collection
  2453.     {
  2454.         return $this->disciplineConciles;
  2455.     }
  2456.     public function addDisciplineConcile(DisciplineConcile $disciplineConcile): static
  2457.     {
  2458.         if (!$this->disciplineConciles->contains($disciplineConcile)) {
  2459.             $this->disciplineConciles->add($disciplineConcile);
  2460.             $disciplineConcile->setAuthor($this);
  2461.         }
  2462.         return $this;
  2463.     }
  2464.     public function removeDisciplineConcile(DisciplineConcile $disciplineConcile): static
  2465.     {
  2466.         if ($this->disciplineConciles->removeElement($disciplineConcile)) {
  2467.             // set the owning side to null (unless already changed)
  2468.             if ($disciplineConcile->getAuthor() === $this) {
  2469.                 $disciplineConcile->setAuthor(null);
  2470.             }
  2471.         }
  2472.         return $this;
  2473.     }
  2474.     /**
  2475.      * @return Collection<int, UserNotifications>
  2476.      */
  2477.     public function getUserNotifications(): Collection
  2478.     {
  2479.         return $this->userNotifications;
  2480.     }
  2481.     public function addUserNotification(UserNotifications $userNotification): static
  2482.     {
  2483.         if (!$this->userNotifications->contains($userNotification)) {
  2484.             $this->userNotifications->add($userNotification);
  2485.             $userNotification->setUser($this);
  2486.         }
  2487.         return $this;
  2488.     }
  2489.     public function removeUserNotification(UserNotifications $userNotification): static
  2490.     {
  2491.         if ($this->userNotifications->removeElement($userNotification)) {
  2492.             // set the owning side to null (unless already changed)
  2493.             if ($userNotification->getUser() === $this) {
  2494.                 $userNotification->setUser(null);
  2495.             }
  2496.         }
  2497.         return $this;
  2498.     }
  2499.     /**
  2500.      * @return Collection<int, TimeTable>
  2501.      */
  2502.     public function getTimeTables(): Collection
  2503.     {
  2504.         return $this->timeTables;
  2505.     }
  2506.     public function addTimeTable(TimeTable $timeTable): static
  2507.     {
  2508.         if (!$this->timeTables->contains($timeTable)) {
  2509.             $this->timeTables->add($timeTable);
  2510.             $timeTable->setProf($this);
  2511.         }
  2512.         return $this;
  2513.     }
  2514.     public function removeTimeTable(TimeTable $timeTable): static
  2515.     {
  2516.         if ($this->timeTables->removeElement($timeTable)) {
  2517.             // set the owning side to null (unless already changed)
  2518.             if ($timeTable->getProf() === $this) {
  2519.                 $timeTable->setProf(null);
  2520.             }
  2521.         }
  2522.         return $this;
  2523.     }
  2524.     /**
  2525.      * @return Collection<int, DiscussionMessagesCount>
  2526.      */
  2527.     public function getDiscussionMessagesCounts(): Collection
  2528.     {
  2529.         return $this->discussionMessagesCounts;
  2530.     }
  2531.     public function addDiscussionMessagesCount(DiscussionMessagesCount $discussionMessagesCount): static
  2532.     {
  2533.         if (!$this->discussionMessagesCounts->contains($discussionMessagesCount)) {
  2534.             $this->discussionMessagesCounts->add($discussionMessagesCount);
  2535.             $discussionMessagesCount->setUser($this);
  2536.         }
  2537.         return $this;
  2538.     }
  2539.     public function removeDiscussionMessagesCount(DiscussionMessagesCount $discussionMessagesCount): static
  2540.     {
  2541.         if ($this->discussionMessagesCounts->removeElement($discussionMessagesCount)) {
  2542.             // set the owning side to null (unless already changed)
  2543.             if ($discussionMessagesCount->getUser() === $this) {
  2544.                 $discussionMessagesCount->setUser(null);
  2545.             }
  2546.         }
  2547.         return $this;
  2548.     }
  2549. }