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