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