- <?php
- namespace CoreBundle\Entity;
- use AppBundle\Form\Model\RemedialModuleModel;
- use CoreBundle\Entity\Common\MmppUserInterface;
- use Doctrine\Common\Collections\ArrayCollection;
- use Doctrine\Common\Collections\Collection;
- use Doctrine\ORM\Mapping as ORM;
- use Gedmo\Mapping\Annotation as Gedmo;
- use Symfony\Component\Validator\Constraints as Assert;
- use TheCodingMachine\GraphQLite\Annotations\Field;
- use TheCodingMachine\GraphQLite\Annotations\Type;
- /**
-  * Student
-  *
-  * @ORM\Table(name="note_student")
-  * @ORM\Entity(repositoryClass="CoreBundle\Repository\StudentRepository")
-  */
- #[Type]
- class Student implements MmppUserInterface, \Serializable
- {
-     /**
-      * @var int
-      *
-      * @ORM\Column(name="id", type="integer")
-      * @ORM\Id
-      * @ORM\GeneratedValue(strategy="IDENTITY")
-      */
-     private $id;
-     /**
-      * @ORM\Column(type="string")
-      * @Assert\NotBlank()
-      */
-     private $name;
-     /**
-      * @ORM\Column(type="string", nullable=true, length=40)
-      */
-     private $password;
-     /**
-      * @ORM\Column(type="string", nullable=true, length=16)
-      * @var string
-      */
-     private $plainPassword;
-     /**
-      * @ORM\Column(type="string")
-      * @Assert\NotBlank()
-      * @Assert\Email()
-      */
-     private $email;
-     /**
-      * @ORM\Column(type="string", nullable=false, length=32, options={"default": "primant"})
-      * @var string
-      */
-     private $recidive;
-     /**
-      * @ORM\Column(type="boolean", nullable=true, options={"default": false})
-      * @var boolean
-      */
-     private $remote;
-     /**
-      * @ORM\Column(type="string", nullable=false, length=10, options={"default": "mr"})
-      * @var string
-      */
-     private $civil;
-     /**
-      * @ORM\Column(type="string", nullable=true)
-      * @var string
-      */
-     private $commercial;
-     /**
-      * @ORM\Column(type="string", nullable=false)
-      * @Assert\NotBlank()
-      * @var string
-      */
-     private $address;
-     /**
-      * @ORM\Column(type="string", nullable=false, length=100)
-      * @Assert\NotBlank()
-      * @var string
-      */
-     private $city;
-     /**
-      * @ORM\Column(type="string", nullable=false, length=10)
-      * @Assert\NotBlank()
-      * @var string
-      */
-     private $cp;
-     /**
-      * @ORM\Column(type="string", nullable=true)
-      * @var string
-      */
-     private $bac;
-     /**
-      * @ORM\Column(type="string", nullable=true)
-      * @var string
-      */
-     private $stage;
-     /**
-      * @ORM\Column(type="boolean", nullable=false, options={"default": false})
-      * @var bool
-      */
-     private $isPau;
-     /**
-      * @ORM\Column(type="string", nullable=true)
-      * @var string
-      */
-     private $numero;
-     /**
-      * @ORM\ManyToOne(targetEntity="EdtGroupFacTd", inversedBy="students")
-      * @ORM\JoinColumn(referencedColumnName="id", onDelete="SET NULL")
-      *
-      * @var EdtGroupFacTd
-      */
-     private $groupFac;
-     /**
-      * Can connect
-      *
-      * @ORM\Column(type="boolean", options={"default": true})
-      */
-     private $active;
-     /**
-      * Visible in rankings/marks
-      *
-      * @ORM\Column(type="boolean", options={"default": true})
-      */
-     private $visible;
-     /**
-      * @ORM\Column(type="boolean", options={"default": false})
-      */
-     private $passwordSend;
-     /**
-      * @ORM\Column(type="boolean", options={"default": false})
-      */
-     private $charteAccepted;
-     /**
-      * @ORM\Column(type="string", nullable=true)
-      */
-     private $avatar;
-     /**
-      * @ORM\Column(type="datetime", name="logged_on", nullable=true)
-      */
-     private $loggedOn;
-     /**
-      * @ORM\Column(type="datetime", name="last_activity", nullable=true)
-      */
-     private $lastActivity;
-     /**
-      * @ORM\Column(type="string", name="doub_moyenne", nullable=true)
-      * @var string
-      */
-     private $doubMoyenne;
-     /**
-      * @ORM\Column(type="boolean", name="oral_exam", nullable=true)
-      * @var boolean
-      */
-     private $oralExam;
-     /**
-      * @ORM\Column(type="datetime", name="date_oral_exam", nullable=true)
-      */
-     private $dateOralExam;
-     /**
-      * @ORM\Column(type="string", name="phone_number", nullable=true)
-      * @var string
-      */
-     private $phoneNumber;
-     /**
-      * @ORM\Column(type="string", name="parent_phone_number", nullable=true)
-      * @var string
-      */
-     private $parentPhoneNumber;
-     /**
-      * @ORM\ManyToOne(targetEntity="Periode", inversedBy="students")
-      * @ORM\JoinColumn(name="periode_id", referencedColumnName="id", nullable=false)
-      */
-     private $periode;
-     /**
-      * @ORM\ManyToOne(targetEntity="Branche", inversedBy="students")
-      * @ORM\JoinColumn(name="branche_id", referencedColumnName="id", nullable=false)
-      */
-     private $branche;
-     /**
-      * @ORM\ManyToOne(targetEntity="GroupStudent", inversedBy="students")
-      * @ORM\JoinColumn(name="group_id", referencedColumnName="id")
-      */
-     private $group;
-     /**
-      * @ORM\OneToMany(targetEntity="Post", mappedBy="student")
-      * @ORM\OrderBy({"createdOn" = "DESC"})
-      */
-     private $posts;
-     /**
-      * @ORM\Column(type="text", nullable=true)
-      */
-     private ?string $remedialComment;
-     /**
-      * @ORM\Column(type="boolean", nullable=true)
-      */
-     private ?bool $remedialDone;
-     /**
-      * @ORM\OneToMany(targetEntity="StudentSecteur", mappedBy="student", cascade={"persist", "remove", "merge"}, orphanRemoval=true)
-      * @var ArrayCollection
-      */
-     private $studentSecteurs;
-     /**
-      * @var ArrayCollection
-      */
-     private $secteurQuad1;
-     /**
-      * @var ArrayCollection
-      */
-     private $secteurQuad2;
-     /**
-      * @ORM\ManyToOne(targetEntity="Category", inversedBy="studentsConnected")
-      * @ORM\JoinColumn(name="last_category_id", referencedColumnName="id", onDelete="SET NULL")
-      */
-     private $lastCategory;
-     /**
-      * @ORM\OneToMany(targetEntity="FileStudent", mappedBy="student")
-      */
-     private $fileStudents;
-     /**
-      * @ORM\OneToMany(targetEntity="NoteTestStudent", mappedBy="student")
-      */
-     private $noteTestStudents;
-     /**
-      * @ORM\OneToMany(targetEntity="Remedial", mappedBy="student", cascade={"persist", "remove"})
-      */
-     private Collection $remedials;
-     /**
-      * @ORM\OneToMany(targetEntity="NoteAbsence", mappedBy="student")
-      */
-     private $absences;
-     /**
-      * Pour faire la distinction entre tutor et student
-      * @var string
-      */
-     public $class = 'student';
-     /**
-      * @Gedmo\Timestampable(on="update")
-      * @ORM\Column(type="datetime", nullable=true)
-      */
-     private $updatedOn;
-     /**
-      * @Gedmo\Timestampable(on="create")
-      * @ORM\Column(type="datetime", nullable=true)
-      */
-     private $createdOn;
-     /**
-      * @ORM\Column(type="string", nullable=true)
-      * @var string
-      */
-     private $photo;
-     /**
-      * @ORM\Column(type="string", nullable=true)
-      * @var string
-      */
-     #[Field]
-     private $firebaseToken;
-     /**
-      * @ORM\Column(type="datetime_immutable", nullable=true)
-      * @var \DateTimeImmutable
-      */
-     #[Field]
-     private $firebaseTokenDate;
-     /**
-      * @ORM\Column(type="string", nullable=true)
-      */
-     private ?string $qrCode;
-     /**
-      * @ORM\Column(type="datetime_immutable", nullable=true)
-      */
-     private ?\DateTimeImmutable $qrCodeDate;
-     /**
-      * @ORM\OneToMany(targetEntity="QuestionnaireQcmStudent", mappedBy="student")
-      * @var ArrayCollection
-      */
-     private $qcmStudents;
-     /**
-      * Nouvelle version
-      *
-      * @var ArrayCollection
-      * @ORM\ManyToMany(targetEntity="Module", inversedBy="students")
-      * @ORM\JoinTable(name="students_modules")
-      * @ORM\OrderBy({"name" = "ASC"})
-      */
-     private $modules;
-     /**
-      * Nouvelle version
-      *
-      * @var ArrayCollection
-      * @ORM\ManyToMany(targetEntity="MinorOption", inversedBy="students")
-      * @ORM\JoinTable(name="students_minor_options")
-      */
-     private $minorOptions;
-     /**
-      * @ORM\OneToMany(targetEntity="StudentDocFile", mappedBy="student", cascade={"persist", "remove"}, orphanRemoval=true)
-      * @var ArrayCollection
-      */
-     private $studentDocFiles;
-     /**
-      * @ORM\OneToMany(targetEntity="RankingMark", mappedBy="student")
-      */
-     private Collection $marks;
-     /**
-      * @var array
-      */
-     private $docFilesQ1;
-     /**
-      * @var array
-      */
-     private $docFilesQ2;
-     /** @var array RemedialModuleModel[] */
-     private array $remedialModuleModels;
-     public function __construct()
-     {
-         $this->posts = new ArrayCollection();
-         $this->secteurQuad1 = new ArrayCollection();
-         $this->secteurQuad2 = new ArrayCollection();
-         $this->studentSecteurs = new ArrayCollection();
-         $this->fileStudents = new ArrayCollection();
-         $this->noteTestStudents = new ArrayCollection();
-         $this->absences = new ArrayCollection();
-         $this->qcmStudents = new ArrayCollection();
-         $this->modules = new ArrayCollection();
-         $this->minorOptions = new ArrayCollection();
-         $this->studentDocFiles = new ArrayCollection();
-         $this->docFilesQ1 = [];
-         $this->docFilesQ2 = [];
-         $this->marks = new ArrayCollection();
-         $this->remedials = new ArrayCollection();
-     }
-     #[Field(outputType: "ID")]
-     public function getId(): ?int
-     {
-         return $this->id;
-     }
-     #[Field]
-     public function getName(): string
-     {
-         return $this->name;
-     }
-     public function setName(?string $name): self
-     {
-         $this->name = $name;
-         return $this;
-     }
-     public function getForumActive()
-     {
-         return $this->isEnabled();
-     }
-     public function getUsername()
-     {
-         return $this->email;
-     }
-     public function getUserIdentifier(): string
-     {
-         return $this->email;
-     }
-     public function getRoles()
-     {
-         return array('ROLE_USER');
-     }
-     public function eraseCredentials()
-     {
-     }
-     public function isEnabled()
-     {
-         return $this->active;
-     }
-     /**
-      * @return Secteur[]
-      * @todo interface dans MMPPUserInterface
-      */
-     #[Field]
-     public function getSecteurs(?string $quad = null)
-     {
-         $secteurs= [];
-         foreach ($this->studentSecteurs as $studentSecteur) {
-             if ((null === $quad) || ($quad == $studentSecteur->getQuad())) {
-                 /** @var Secteur $secteur */
-                 $secteur = $studentSecteur->getSecteur();
-                 $secteurs[$secteur->getId()] = $secteur;
-             }
-         }
-         return array_values($secteurs);
-     }
-     /**
-      * @param Secteur $secteur
-      * @return bool
-      */
-     public function hasSecteur(Secteur $secteur, $quad)
-     {
-         return in_array($secteur, $this->getSecteurs($quad));
-     }
-     /**
-      * @return ArrayCollection
-      */
-     public function getSecteurQuad1()
-     {
-         return $this->secteurQuad1;
-     }
-     /**
-      * @param Secteur $secteur
-      * @return Student
-      */
-     public function addSecteurQuad1(Secteur $secteur)
-     {
-         $this->secteurQuad1[] = $secteur;
-         return $this;
-     }
-     /**
-      * @param ArrayCollection $secteurQuad1
-      * @return Student
-      */
-     public function setSecteurQuad1(ArrayCollection $secteurQuad1): Student
-     {
-         $this->secteurQuad1 = $secteurQuad1;
-         return $this;
-     }
-     /**
-      * @return ArrayCollection
-      */
-     public function getSecteurQuad2()
-     {
-         return $this->secteurQuad2;
-     }
-     /**
-      * @param Secteur $secteur
-      * @return Student
-      */
-     public function addSecteurQuad2(Secteur $secteur)
-     {
-         $this->secteurQuad2[] = $secteur;
-         return $this;
-     }
-     /**
-      * @param ArrayCollection $secteurQuad2
-      * @return Student
-      */
-     public function setSecteurQuad2(ArrayCollection $secteurQuad2): Student
-     {
-         $this->secteurQuad2 = $secteurQuad2;
-         return $this;
-     }
-     /**
-      * Get admin
-      *
-      * @return boolean
-      */
-     #[Field]
-     public function getAdmin(): bool
-     {
-         return false;
-     }
-     public function getPassword(): ?string
-     {
-         return $this->password;
-     }
-     public function getSalt()
-     {
-         return null;
-     }
-     public function setPassword(string $password): self
-     {
-         $this->password = $password;
-         return $this;
-     }
-     public function getPlainPassword(): ?string
-     {
-         return $this->plainPassword;
-     }
-     public function setPlainPassword(string $plainPassword): self
-     {
-         $this->plainPassword = $plainPassword;
-         return $this;
-     }
-     #[Field]
-     public function getEmail(): ?string
-     {
-         return $this->email;
-     }
-     public function setEmail(string $email): self
-     {
-         $this->email = $email;
-         return $this;
-     }
-     public function getRecidive(): ?string
-     {
-         return $this->recidive;
-     }
-     public function setRecidive(?string $recidive): self
-     {
-         $this->recidive = $recidive;
-         return $this;
-     }
-     #[Field]
-     public function getRemote(): ?bool
-     {
-         return $this->remote;
-     }
-     public function setRemote(?bool $remote): self
-     {
-         $this->remote = $remote;
-         return $this;
-     }
-     public function getAddress(): ?string
-     {
-         return $this->address;
-     }
-     public function setAddress(?string $address): self
-     {
-         $this->address = $address;
-         return $this;
-     }
-     public function getCity(): ?string
-     {
-         return $this->city;
-     }
-     public function setCity(?string $city): self
-     {
-         $this->city = $city;
-         return $this;
-     }
-     public function getCp(): ?string
-     {
-         return $this->cp;
-     }
-     public function setCp(?string $cp): self
-     {
-         $this->cp = $cp;
-         return $this;
-     }
-     public function getBac(): ?string
-     {
-         return $this->bac;
-     }
-     public function setBac(?string $bac): self
-     {
-         $this->bac = $bac;
-         return $this;
-     }
-     public function getStage(): ?string
-     {
-         return $this->stage;
-     }
-     public function setStage(?string $stage): self
-     {
-         $this->stage = $stage;
-         return $this;
-     }
-     public function getIsPau(): ?bool
-     {
-         return $this->isPau;
-     }
-     public function setIsPau(?bool $isPau): self
-     {
-         $this->isPau = $isPau;
-         return $this;
-     }
-     public function getNumero(): ?string
-     {
-         return $this->numero;
-     }
-     public function setNumero(?string $numero): self
-     {
-         $this->numero = $numero;
-         return $this;
-     }
-     public function getActive(): ?bool
-     {
-         return $this->active;
-     }
-     public function setActive(bool $active): self
-     {
-         $this->active = $active;
-         return $this;
-     }
-     public function getPasswordSend(): ?bool
-     {
-         return $this->passwordSend;
-     }
-     public function setPasswordSend(bool $passwordSend): self
-     {
-         $this->passwordSend = $passwordSend;
-         return $this;
-     }
-     public function getCharteAccepted(): ?bool
-     {
-         return $this->charteAccepted;
-     }
-     public function setCharteAccepted(bool $charteAccepted): self
-     {
-         $this->charteAccepted = $charteAccepted;
-         return $this;
-     }
-     public function getAvatar(): ?string
-     {
-         return $this->avatar;
-     }
-     public function setAvatar(string $avatar): self
-     {
-         $this->avatar = $avatar;
-         return $this;
-     }
-     public function getLoggedOn(): ?\DateTimeInterface
-     {
-         return $this->loggedOn;
-     }
-     public function setLoggedOn(\DateTimeInterface $loggedOn): self
-     {
-         $this->loggedOn = $loggedOn;
-         return $this;
-     }
-     public function getLastActivity(): ?\DateTimeInterface
-     {
-         return $this->lastActivity;
-     }
-     public function setLastActivity(\DateTimeInterface $lastActivity): self
-     {
-         $this->lastActivity = $lastActivity;
-         return $this;
-     }
-     public function getDoubMoyenne(): ?string
-     {
-         return $this->doubMoyenne;
-     }
-     public function setDoubMoyenne(?string $doubMoyenne): self
-     {
-         $this->doubMoyenne = $doubMoyenne;
-         return $this;
-     }
-     public function getUpdatedOn(): ?\DateTimeInterface
-     {
-         return $this->updatedOn;
-     }
-     public function setUpdatedOn(\DateTimeInterface $updatedOn): self
-     {
-         $this->updatedOn = $updatedOn;
-         return $this;
-     }
-     public function getCreatedOn(): ?\DateTimeInterface
-     {
-         return $this->createdOn;
-     }
-     public function setCreatedOn(\DateTimeInterface $createdOn): self
-     {
-         $this->createdOn = $createdOn;
-         return $this;
-     }
-     public function getPhoto(): ?string
-     {
-         return $this->photo;
-     }
-     public function setPhoto(?string $photo): self
-     {
-         $this->photo = $photo;
-         return $this;
-     }
-     public function getGroupFac(): ?EdtGroupFacTd
-     {
-         return $this->groupFac;
-     }
-     public function setGroupFac(?EdtGroupFacTd $groupFac): self
-     {
-         $this->groupFac = $groupFac;
-         return $this;
-     }
-     public function getPeriode(): ?Periode
-     {
-         return $this->periode;
-     }
-     public function setPeriode(?Periode $periode): self
-     {
-         $this->periode = $periode;
-         return $this;
-     }
-     #[Field]
-     public function getBranche(): ?Branche
-     {
-         return $this->branche;
-     }
-     public function setBranche(?Branche $branche): self
-     {
-         $this->branche = $branche;
-         return $this;
-     }
-     public function getGroup(): ?GroupStudent
-     {
-         return $this->group;
-     }
-     public function setGroup(?GroupStudent $group): self
-     {
-         $this->group = $group;
-         return $this;
-     }
-     /**
-      * @return Collection|Post[]
-      */
-     public function getPosts(): Collection
-     {
-         return $this->posts;
-     }
-     public function addPost(Post $post): self
-     {
-         if (!$this->posts->contains($post)) {
-             $this->posts[] = $post;
-             $post->setStudent($this);
-         }
-         return $this;
-     }
-     public function removePost(Post $post): self
-     {
-         if ($this->posts->contains($post)) {
-             $this->posts->removeElement($post);
-             // set the owning side to null (unless already changed)
-             if ($post->getStudent() === $this) {
-                 $post->setStudent(null);
-             }
-         }
-         return $this;
-     }
-     /**
-      * @return Collection|StudentSecteur[]
-      */
-     public function getStudentSecteurs(): Collection
-     {
-         return $this->studentSecteurs;
-     }
-     public function addStudentSecteur(StudentSecteur $studentSecteur): self
-     {
-         if (!$this->studentSecteurs->contains($studentSecteur)) {
-             $this->studentSecteurs[] = $studentSecteur;
-             $studentSecteur->setStudent($this);
-         }
-         return $this;
-     }
-     public function removeStudentSecteur(StudentSecteur $studentSecteur): self
-     {
-         if ($this->studentSecteurs->contains($studentSecteur)) {
-             $this->studentSecteurs->removeElement($studentSecteur);
-             // set the owning side to null (unless already changed)
-             if ($studentSecteur->getStudent() === $this) {
-                 $studentSecteur->setStudent(null);
-             }
-         }
-         return $this;
-     }
-     public function getLastCategory(): ?Category
-     {
-         return $this->lastCategory;
-     }
-     public function setLastCategory(?Category $lastCategory): self
-     {
-         $this->lastCategory = $lastCategory;
-         return $this;
-     }
-     /**
-      * @return Collection|FileStudent[]
-      */
-     public function getFileStudents(): Collection
-     {
-         return $this->fileStudents;
-     }
-     public function addFileStudent(FileStudent $fileStudent): self
-     {
-         if (!$this->fileStudents->contains($fileStudent)) {
-             $this->fileStudents[] = $fileStudent;
-             $fileStudent->setStudent($this);
-         }
-         return $this;
-     }
-     public function removeFileStudent(FileStudent $fileStudent): self
-     {
-         if ($this->fileStudents->contains($fileStudent)) {
-             $this->fileStudents->removeElement($fileStudent);
-             // set the owning side to null (unless already changed)
-             if ($fileStudent->getStudent() === $this) {
-                 $fileStudent->setStudent(null);
-             }
-         }
-         return $this;
-     }
-     /**
-      * @return Collection|NoteTestStudent[]
-      */
-     public function getNoteTestStudents(): Collection
-     {
-         return $this->noteTestStudents;
-     }
-     public function addNoteTestStudent(NoteTestStudent $noteTestStudent): self
-     {
-         if (!$this->noteTestStudents->contains($noteTestStudent)) {
-             $this->noteTestStudents[] = $noteTestStudent;
-             $noteTestStudent->setStudent($this);
-         }
-         return $this;
-     }
-     public function removeNoteTestStudent(NoteTestStudent $noteTestStudent): self
-     {
-         if ($this->noteTestStudents->contains($noteTestStudent)) {
-             $this->noteTestStudents->removeElement($noteTestStudent);
-             // set the owning side to null (unless already changed)
-             if ($noteTestStudent->getStudent() === $this) {
-                 $noteTestStudent->setStudent(null);
-             }
-         }
-         return $this;
-     }
-     /**
-      * @return Collection|NoteAbsence[]
-      */
-     public function getAbsences(): Collection
-     {
-         return $this->absences;
-     }
-     public function addAbsence(NoteAbsence $absence): self
-     {
-         if (!$this->absences->contains($absence)) {
-             $this->absences[] = $absence;
-             $absence->setStudent($this);
-         }
-         return $this;
-     }
-     public function removeAbsence(NoteAbsence $absence): self
-     {
-         if ($this->absences->contains($absence)) {
-             $this->absences->removeElement($absence);
-             // set the owning side to null (unless already changed)
-             if ($absence->getStudent() === $this) {
-                 $absence->setStudent(null);
-             }
-         }
-         return $this;
-     }
-     /** @see \Serializable::serialize() */
-     public function serialize()
-     {
-         return serialize(array(
-             $this->id,
-             $this->email,
-             $this->password,
-             // see section on salt below
-             // $this->salt,
-         ));
-     }
-     /** @see \Serializable::unserialize() */
-     public function unserialize($serialized)
-     {
-         list (
-             $this->id,
-             $this->email,
-             $this->password,
-             // see section on salt below
-             // $this->salt
-             ) = unserialize($serialized);
-     }
-     /**
-      * @return Collection|QuestionnaireQcmStudent[]
-      */
-     public function getQcmStudents(): Collection
-     {
-         return $this->qcmStudents;
-     }
-     public function addQcmStudent(QuestionnaireQcmStudent $qcmStudent): self
-     {
-         if (!$this->qcmStudents->contains($qcmStudent)) {
-             $this->qcmStudents[] = $qcmStudent;
-             $qcmStudent->setStudent($this);
-         }
-         return $this;
-     }
-     public function removeQcmStudent(QuestionnaireQcmStudent $qcmStudent): self
-     {
-         if ($this->qcmStudents->contains($qcmStudent)) {
-             $this->qcmStudents->removeElement($qcmStudent);
-             // set the owning side to null (unless already changed)
-             if ($qcmStudent->getStudent() === $this) {
-                 $qcmStudent->setStudent(null);
-             }
-         }
-         return $this;
-     }
-     /**
-      * @return Module[]
-      */
-     public function getModules(): Collection
-     {
-         return $this->modules;
-     }
-     /**
-      * @return Module[]
-      */
-     #[Field(name: "modules")]
-     public function getActiveModules(): array
-     {
-         $modules = [];
-         /** @var Module $module */
-         foreach ($this->modules as $module) {
-             if ($module->getActive()) {
-                 $modules[] = $module;
-             }
-         }
-         return $modules;
-     }
-     public function addModule(Module $module): self
-     {
-         if (!$this->modules->contains($module)) {
-             $this->modules[] = $module;
-         }
-         return $this;
-     }
-     public function removeModule(Module $module): self
-     {
-         if ($this->modules->contains($module)) {
-             $this->modules->removeElement($module);
-         }
-         return $this;
-     }
-     public function hasModule(Module $module): bool
-     {
-         return $this->modules->contains($module);
-     }
-     /**
-      * @return Collection|MinorOption[]
-      */
-     #[Field]
-     public function getMinorOptions(): Collection
-     {
-         return $this->minorOptions;
-     }
-     public function addMinorOption(MinorOption $minorOption): self
-     {
-         if (!$this->minorOptions->contains($minorOption)) {
-             $this->minorOptions[] = $minorOption;
-         }
-         return $this;
-     }
-     public function removeMinorOption(MinorOption $minorOption): self
-     {
-         if ($this->minorOptions->contains($minorOption)) {
-             $this->minorOptions->removeElement($minorOption);
-         }
-         return $this;
-     }
-     public function getVisible(): ?bool
-     {
-         return $this->visible;
-     }
-     public function setVisible(bool $visible): self
-     {
-         $this->visible = $visible;
-         return $this;
-     }
-     public function getCivil(): ?string
-     {
-         return $this->civil;
-     }
-     public function setCivil(string $civil): self
-     {
-         $this->civil = $civil;
-         return $this;
-     }
-     public function getCommercial(): ?string
-     {
-         return $this->commercial;
-     }
-     public function setCommercial(string $commercial): self
-     {
-         $this->commercial = $commercial;
-         return $this;
-     }
-     public function getOralExam(): ?bool
-     {
-         return $this->oralExam;
-     }
-     public function setOralExam(?bool $oralExam): self
-     {
-         $this->oralExam = $oralExam;
-         return $this;
-     }
-     public function getDateOralExam(): ?\DateTime
-     {
-         return $this->dateOralExam;
-     }
-     public function setDateOralExam(?\DateTime $dateOralExam): self
-     {
-         $this->dateOralExam = $dateOralExam;
-         return $this;
-     }
-     public function getPhoneNumber(): ?string
-     {
-         return $this->phoneNumber;
-     }
-     public function setPhoneNumber(?string $phoneNumber): self
-     {
-         $this->phoneNumber = $phoneNumber;
-         return $this;
-     }
-     public function getParentPhoneNumber(): ?string
-     {
-         return $this->parentPhoneNumber;
-     }
-     public function setParentPhoneNumber(?string $parentPhoneNumber): self
-     {
-         $this->parentPhoneNumber = $parentPhoneNumber;
-         return $this;
-     }
-     /**
-      * @return Collection|StudentDocFile[]
-      */
-     public function getStudentDocFiles(): Collection
-     {
-         return $this->studentDocFiles;
-     }
-     public function addStudentDocFile(StudentDocFile $studentDocFile): self
-     {
-         if (!$this->studentDocFiles->contains($studentDocFile)) {
-             $this->studentDocFiles[] = $studentDocFile;
-             $studentDocFile->setStudent($this);
-         }
-         return $this;
-     }
-     public function removeStudentDocFile(StudentDocFile $studentDocFile): self
-     {
-         if ($this->studentDocFiles->removeElement($studentDocFile)) {
-             // set the owning side to null (unless already changed)
-             if ($studentDocFile->getStudent() === $this) {
-                 $studentDocFile->setStudent(null);
-             }
-         }
-         return $this;
-     }
-     public function getDocFilesQ1(): ?array
-     {
-         return $this->docFilesQ1;
-     }
-     public function setDocFilesQ1(array $docFiles): self
-     {
-         $this->docFilesQ1 = $docFiles;
-         return $this;
-     }
-     public function addDocFileQ1(DocFile $docFile): self
-     {
-         $this->docFilesQ1[] = $docFile;
-         return $this;
-     }
-     public function getDocFilesQ2(): ?array
-     {
-         return $this->docFilesQ2;
-     }
-     public function setDocFilesQ2(array $docFiles): self
-     {
-         $this->docFilesQ2 = $docFiles;
-         return $this;
-     }
-     public function addDocFileQ2(DocFile $docFile): self
-     {
-         $this->docFilesQ2[] = $docFile;
-         return $this;
-     }
-     public function getDocFiles(): array
-     {
-         return array_merge($this->docFilesQ1, $this->docFilesQ2);
-     }
-     public function getFirebaseToken(): ?string
-     {
-         return $this->firebaseToken;
-     }
-     public function setFirebaseToken(?string $firebaseToken): self
-     {
-         $this->firebaseToken = $firebaseToken;
-         return $this;
-     }
-     public function getFirebaseTokenDate(): ?\DateTimeImmutable
-     {
-         return $this->firebaseTokenDate;
-     }
-     public function setFirebaseTokenDate(?\DateTimeImmutable $firebaseTokenDate): self
-     {
-         $this->firebaseTokenDate = $firebaseTokenDate;
-         return $this;
-     }
-     /**
-      * @return Collection<int, RankingMark>
-      */
-     public function getMarks(): Collection
-     {
-         return $this->marks;
-     }
-     public function addMark(RankingMark $mark): self
-     {
-         if (!$this->marks->contains($mark)) {
-             $this->marks[] = $mark;
-             $mark->setStudent($this);
-         }
-         return $this;
-     }
-     public function removeMark(RankingMark $mark): self
-     {
-         if ($this->marks->removeElement($mark)) {
-             // set the owning side to null (unless already changed)
-             if ($mark->getStudent() === $this) {
-                 $mark->setStudent(null);
-             }
-         }
-         return $this;
-     }
-     /**
-      * @return Collection<int, Remedial>
-      */
-     public function getRemedials(): Collection
-     {
-         return $this->remedials;
-     }
-     public function addRemedial(Remedial $remedial): self
-     {
-         if (!$this->remedials->contains($remedial)) {
-             $this->remedials[] = $remedial;
-             $remedial->setStudent($this);
-         }
-         return $this;
-     }
-     public function removeRemedial(Remedial $remedial): self
-     {
-         $this->remedials->removeElement($remedial);
-         return $this;
-     }
-     public function getRemedialComment(): ?string
-     {
-         return $this->remedialComment;
-     }
-     public function setRemedialComment(string $remedialComment): self
-     {
-         $this->remedialComment = $remedialComment;
-         return $this;
-     }
-     public function getRemedialDone(): ?bool
-     {
-         return $this->remedialDone;
-     }
-     public function setRemedialDone(bool $remedialDone): self
-     {
-         $this->remedialDone = $remedialDone;
-         return $this;
-     }
-     public function getQrCode(): ?string
-     {
-         return $this->qrCode;
-     }
-     public function setQrCode(?string $qrCode): self
-     {
-         $this->qrCode = $qrCode;
-         return $this;
-     }
-     public function getQrCodeDate(): ?\DateTimeImmutable
-     {
-         return $this->qrCodeDate;
-     }
-     public function setQrCodeDate(?\DateTimeImmutable $qrCodeDate): self
-     {
-         $this->qrCodeDate = $qrCodeDate;
-         return $this;
-     }
-     public function isRemote(): ?bool
-     {
-         return $this->remote;
-     }
-     public function isIsPau(): ?bool
-     {
-         return $this->isPau;
-     }
-     public function isActive(): ?bool
-     {
-         return $this->active;
-     }
-     public function isVisible(): ?bool
-     {
-         return $this->visible;
-     }
-     public function isPasswordSend(): ?bool
-     {
-         return $this->passwordSend;
-     }
-     public function isCharteAccepted(): ?bool
-     {
-         return $this->charteAccepted;
-     }
-     public function isOralExam(): ?bool
-     {
-         return $this->oralExam;
-     }
-     public function isRemedialDone(): ?bool
-     {
-         return $this->remedialDone;
-     }
-     public function getRemedialModuleModels(): array
-     {
-         return $this->remedialModuleModels;
-     }
-     public function setRemedialModuleModels(array $remedialModuleModels): Student
-     {
-         $this->remedialModuleModels = $remedialModuleModels;
-         return $this;
-     }
-     public function addRemedialModuleModel(RemedialModuleModel $remedialModuleModel): self
-     {
-         $this->remedialModuleModels[] = $remedialModuleModel;
-         return $this;
-     }
- }
-