src/Entity/User.php line 23

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