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