src/Entity/Student.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\StudentRepository;
  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 App\Entity\Traits\Timestampable;
  9. use JMS\Serializer\Annotation\Groups;
  10. #[ORM\HasLifecycleCallbacks]
  11. #[ORM\Entity(repositoryClassStudentRepository::class)]
  12. // Ces deux index accélèrent les vérifications faites à chaque ligne d'un import Excel : détection
  13. // de doublon (nom + prénom + date de naissance + école) et unicité du matricule. Sans eux, ces
  14. // recherches font un scan complet de la table student (qui contient TOUS les élèves de TOUTES les
  15. // écoles de la plateforme), ce qui explique un import qui devient de plus en plus lent avec le temps.
  16. #[ORM\Index(name'idx_student_dedup'columns: ['school_id''last_name''first_name''born_day'])]
  17. #[ORM\Index(name'idx_student_matricule'columns: ['matricule'])]
  18. class Student
  19. {
  20.     use Timestampable;
  21.     #[ORM\Id]
  22.     #[ORM\GeneratedValue]
  23.     #[ORM\Column]
  24.     #[Groups(['getLate','getAbsence','note','getBulletin','getPunish','getStudents','getExamStudent'])]
  25.     private ?int $id null;
  26.     #[ORM\Column(length255,nullabletrue)]
  27.     #[Groups(['getLate','getAbsence','note','getBulletin','getPunish','getStudents','getExamStudent'])]
  28.     private ?string $firstName null;
  29.     #[ORM\Column(length255)]
  30.     #[Groups(['getLate','getAbsence','note','getBulletin','getPunish','getStudents','getExamStudent'])]
  31.     private ?string $lastName null;
  32.     #[ORM\Column(length255,nullabletrue)]
  33.     #[Groups(['getLate','getAbsence','note','getBulletin','getStudents'])]
  34.     private ?string $matricule null;
  35.     #[ORM\Column(length255nullabletrue)]
  36.     private ?string $bornLocation null;
  37.     #[ORM\ManyToOne(cascade: ["persist"], inversedBy'students')]
  38.     #[Groups(['getStudents'])]
  39.     #[ORM\JoinColumn(nullabletrue)]
  40.     private ?User $parent null;
  41.     // Compte de connexion de l'élève lui-même (userType='student' sur User) — distinct
  42.     // de $parent ci-dessus, qui est le compte du parent/tuteur. Nullable : tous les
  43.     // élèves n'ont pas forcément de compte (créé à la demande par l'admin/scolarité).
  44.     #[ORM\OneToOne(inversedBy'studentProfile'cascade: ["persist"])]
  45.     #[ORM\JoinColumn(nullabletrueuniquetrue)]
  46.     private ?User $account null;
  47.     #[ORM\OneToMany(mappedBy'student'targetEntityStudentYear::class)]
  48.     private Collection $studentYears;
  49.     #[ORM\OneToMany(mappedBy'student'targetEntityLate::class)]
  50.     private Collection $lates;
  51.     #[ORM\OneToMany(mappedBy'student'targetEntityAbsence::class)]
  52.     private Collection $absences;
  53.     #[ORM\OneToMany(mappedBy'student'targetEntityNote::class)]
  54.     private Collection $notes;
  55.     #[ORM\Column(length255nullabletrue)]
  56.     private ?string $fullName null;
  57.     #[ORM\ManyToOne(inversedBy'studentsEdited'cascade: ["persist"])]
  58.     private ?User $editor null;
  59.     #[ORM\ManyToOne(inversedBy'studentsCreated'cascade: ["persist"])]
  60.     private ?User $author null;
  61.     
  62.     #[ORM\OneToMany(mappedBy'student'targetEntityPunish::class, orphanRemovaltrue)]
  63.     private Collection $punishes;
  64.     #[ORM\Column(length255nullabletrue)]
  65.     #[Groups(['getStudents'])]
  66.     private ?string $sexe null;
  67.     #[ORM\ManyToOne(inversedBy'students'cascade: ["persist"])]
  68.     #[ORM\JoinColumn(nullabletrue)]
  69.     private ?School $school null;
  70.     #[ORM\OneToMany(mappedBy'student'targetEntityDisciplineWarning::class)]
  71.     private Collection $disciplineWarnings;
  72.     #[ORM\OneToMany(mappedBy'student'targetEntityDisciplineBlame::class)]
  73.     private Collection $disciplineBlames;
  74.     #[ORM\OneToMany(mappedBy'student'targetEntityDisciplineExclusion::class)]
  75.     private Collection $disciplineExclusions;
  76.     #[ORM\OneToMany(mappedBy'student'targetEntityDisciplineRetained::class)]
  77.     private Collection $disciplineRetaineds;
  78.     #[ORM\OneToOne(mappedBy'student'cascade: ['persist''remove'])]
  79.     private ?DefinitiveExclusion $definitiveExclusion null;
  80.     #[ORM\OneToMany(mappedBy'student'targetEntityDisciplineConcile::class)]
  81.     private Collection $disciplineConciles;
  82.     #[ORM\OneToMany(mappedBy'student'targetEntityPrimaryNote::class)]
  83.     private Collection $primaryNotes;
  84.     #[ORM\OneToMany(mappedBy'student'targetEntityDisciplinePunish::class)]
  85.     private Collection $disciplinePunishes;
  86.     
  87.     #[ORM\Column(length255nullabletrue)]
  88.     private ?string $picture null;
  89.     #[ORM\Column(length255nullabletrue)]
  90.     private ?string $bornArrondissement null;
  91.     #[ORM\Column(length255nullabletrue)]
  92.     private ?string $bornDepartement null;
  93.     #[ORM\OneToMany(mappedBy'student'targetEntityBlame::class)]
  94.     private Collection $blames;
  95.     #[ORM\OneToMany(mappedBy'student'targetEntityWarning::class)]
  96.     private Collection $warnings;
  97.     #[ORM\OneToMany(mappedBy'student'targetEntityRetained::class)]
  98.     private Collection $retaineds;
  99.     #[ORM\Column(length255nullabletrue)]
  100.     private ?string $father null;
  101.     #[ORM\Column(length255nullabletrue)]
  102.     private ?string $mother null;
  103.     #[ORM\Column(typeTypes::DATE_MUTABLEnullabletrue)]
  104.     private ?\DateTimeInterface $bornDay null;
  105.     #[ORM\Column(length255nullabletrue)]
  106.     private ?string $govMatricule null;
  107.     public function __construct()
  108.     {
  109.         $this->studentYears = new ArrayCollection();
  110.         $this->lates = new ArrayCollection();
  111.         $this->absences = new ArrayCollection();
  112.         $this->notes = new ArrayCollection();
  113.         $this->punishes = new ArrayCollection();
  114.         $this->disciplineWarnings = new ArrayCollection();
  115.         $this->disciplineBlames = new ArrayCollection();
  116.         $this->disciplineExclusions = new ArrayCollection();
  117.         $this->disciplineRetaineds = new ArrayCollection();
  118.         $this->disciplineConciles = new ArrayCollection();
  119.         $this->primaryNotes = new ArrayCollection();
  120.         $this->disciplinePunishes = new ArrayCollection();
  121.         $this->blames = new ArrayCollection();
  122.         $this->warnings = new ArrayCollection();
  123.         $this->retaineds = new ArrayCollection();
  124.     }
  125.     public function __toString(): string
  126.     {
  127.         return $this->getFullName();
  128.     }
  129.     
  130.     public function getFullName():string
  131.     {
  132.         return  $this->lastName.' '.$this->firstName;
  133.     }
  134.     public function getId(): ?int
  135.     {
  136.         return $this->id;
  137.     }
  138.     public function getFirstName(): ?string
  139.     {
  140.         return $this->firstName;
  141.     }
  142.     public function setFirstName(string $firstName): static
  143.     {
  144.         $this->firstName $firstName;
  145.         return $this;
  146.     }
  147.     public function getLastName(): ?string
  148.     {
  149.         return $this->lastName;
  150.     }
  151.     public function setLastName(string $lastName): static
  152.     {
  153.         $this->lastName $lastName;
  154.         return $this;
  155.     }
  156.     public function getMatricule(): ?string
  157.     {
  158.         return $this->matricule;
  159.     }
  160.     public function setMatricule(string $matricule): static
  161.     {
  162.         $this->matricule $matricule;
  163.         return $this;
  164.     }
  165.     public function getBornLocation(): ?string
  166.     {
  167.         return $this->bornLocation;
  168.     }
  169.     public function setBornLocation(?string $bornLocation): static
  170.     {
  171.         $this->bornLocation $bornLocation;
  172.         return $this;
  173.     }
  174.     public function getParent(): ?User
  175.     {
  176.         return $this->parent;
  177.     }
  178.     public function setParent(?User $parent): static
  179.     {
  180.         $this->parent $parent;
  181.         return $this;
  182.     }
  183.     public function getAccount(): ?User
  184.     {
  185.         return $this->account;
  186.     }
  187.     public function setAccount(?User $account): static
  188.     {
  189.         $this->account $account;
  190.         return $this;
  191.     }
  192.     /**
  193.      * @return Collection<int, StudentYear>
  194.      */
  195.     public function getStudentYears(): Collection
  196.     {
  197.         return $this->studentYears;
  198.     }
  199.     public function addStudentYear(StudentYear $studentYear): static
  200.     {
  201.         if (!$this->studentYears->contains($studentYear)) {
  202.             $this->studentYears->add($studentYear);
  203.             $studentYear->setStudent($this);
  204.         }
  205.         return $this;
  206.     }
  207.     public function removeStudentYear(StudentYear $studentYear): static
  208.     {
  209.         if ($this->studentYears->removeElement($studentYear)) {
  210.             // set the owning side to null (unless already changed)
  211.             if ($studentYear->getStudent() === $this) {
  212.                 $studentYear->setStudent(null);
  213.             }
  214.         }
  215.         return $this;
  216.     }
  217.     /**
  218.      * @return Collection<int, Late>
  219.      */
  220.     public function getLates(): Collection
  221.     {
  222.         return $this->lates;
  223.     }
  224.     public function addLate(Late $late): static
  225.     {
  226.         if (!$this->lates->contains($late)) {
  227.             $this->lates->add($late);
  228.             $late->setStudent($this);
  229.         }
  230.         return $this;
  231.     }
  232.     public function removeLate(Late $late): static
  233.     {
  234.         if ($this->lates->removeElement($late)) {
  235.             // set the owning side to null (unless already changed)
  236.             if ($late->getStudent() === $this) {
  237.                 $late->setStudent(null);
  238.             }
  239.         }
  240.         return $this;
  241.     }
  242.     /**
  243.      * @return Collection<int, Absence>
  244.      */
  245.     public function getAbsences(): Collection
  246.     {
  247.         return $this->absences;
  248.     }
  249.     public function addAbsence(Absence $absence): static
  250.     {
  251.         if (!$this->absences->contains($absence)) {
  252.             $this->absences->add($absence);
  253.             $absence->setStudent($this);
  254.         }
  255.         return $this;
  256.     }
  257.     public function removeAbsence(Absence $absence): static
  258.     {
  259.         if ($this->absences->removeElement($absence)) {
  260.             // set the owning side to null (unless already changed)
  261.             if ($absence->getStudent() === $this) {
  262.                 $absence->setStudent(null);
  263.             }
  264.         }
  265.         return $this;
  266.     }
  267.     /**
  268.      * @return Collection<int, Note>
  269.      */
  270.     public function getNotes(): Collection
  271.     {
  272.         return $this->notes;
  273.     }
  274.     public function addNote(Note $note): static
  275.     {
  276.         if (!$this->notes->contains($note)) {
  277.             $this->notes->add($note);
  278.             $note->setStudent($this);
  279.         }
  280.         return $this;
  281.     }
  282.     public function removeNote(Note $note): static
  283.     {
  284.         if ($this->notes->removeElement($note)) {
  285.             // set the owning side to null (unless already changed)
  286.             if ($note->getStudent() === $this) {
  287.                 $note->setStudent(null);
  288.             }
  289.         }
  290.         return $this;
  291.     }
  292.     public function setFullName(?string $fullName): static
  293.     {
  294.         $this->fullName $fullName;
  295.         return $this;
  296.     }
  297.     public function getEditor(): ?User
  298.     {
  299.         return $this->editor;
  300.     }
  301.     public function setEditor(?User $editor): static
  302.     {
  303.         $this->editor $editor;
  304.         return $this;
  305.     }
  306.     /**
  307.      * @return Collection<int, Punish>
  308.      */
  309.     public function getPunishes(): Collection
  310.     {
  311.         return $this->punishes;
  312.     }
  313.     public function addPunishes(Punish $punishDetail): static
  314.     {
  315.         if (!$this->punishes->contains($punishDetail)) {
  316.             $this->punishes->add($punishDetail);
  317.             $punishDetail->setStudent($this);
  318.         }
  319.         return $this;
  320.     }
  321.     
  322.     public function removePunishDetail(Punish $punishes): static
  323.     {
  324.         if ($this->punishes->removeElement($punishes)) {
  325.             // set the owning side to null (unless already changed)
  326.             if ($punishes->getStudent() === $this) {
  327.                 $punishes->setStudent(null);
  328.             }
  329.         }
  330.         return $this;
  331.     }
  332.     public function getAuthor(): ?User
  333.     {
  334.         return $this->author;
  335.     }
  336.     public function setAuthor(?User $author): static
  337.     {
  338.         $this->author $author;
  339.         return $this;
  340.     }
  341.     public function getSexe(): ?string
  342.     {
  343.         return $this->sexe;
  344.     }
  345.     public function setSexe(string $sexe): static
  346.     {
  347.         $this->sexe $sexe;
  348.         return $this;
  349.     }
  350.     public function getSchool(): ?School
  351.     {
  352.         return $this->school;
  353.     }
  354.     public function setSchool(?School $school): static
  355.     {
  356.         $this->school $school;
  357.         return $this;
  358.     }
  359.     /**
  360.      * @return Collection<int, DisciplineWarning>
  361.      */
  362.     public function getDisciplineWarnings(): Collection
  363.     {
  364.         return $this->disciplineWarnings;
  365.     }
  366.     public function addDisciplineWarning(DisciplineWarning $disciplineWarning): static
  367.     {
  368.         if (!$this->disciplineWarnings->contains($disciplineWarning)) {
  369.             $this->disciplineWarnings->add($disciplineWarning);
  370.             $disciplineWarning->setStudent($this);
  371.         }
  372.         return $this;
  373.     }
  374.     public function removeDisciplineWarning(DisciplineWarning $disciplineWarning): static
  375.     {
  376.         if ($this->disciplineWarnings->removeElement($disciplineWarning)) {
  377.             // set the owning side to null (unless already changed)
  378.             if ($disciplineWarning->getStudent() === $this) {
  379.                 $disciplineWarning->setStudent(null);
  380.             }
  381.         }
  382.         return $this;
  383.     }
  384.     /**
  385.      * @return Collection<int, DisciplineBlame>
  386.      */
  387.     public function getDisciplineBlames(): Collection
  388.     {
  389.         return $this->disciplineBlames;
  390.     }
  391.     public function addDisciplineBlame(DisciplineBlame $disciplineBlame): static
  392.     {
  393.         if (!$this->disciplineBlames->contains($disciplineBlame)) {
  394.             $this->disciplineBlames->add($disciplineBlame);
  395.             $disciplineBlame->setStudent($this);
  396.         }
  397.         return $this;
  398.     }
  399.     public function removeDisciplineBlame(DisciplineBlame $disciplineBlame): static
  400.     {
  401.         if ($this->disciplineBlames->removeElement($disciplineBlame)) {
  402.             // set the owning side to null (unless already changed)
  403.             if ($disciplineBlame->getStudent() === $this) {
  404.                 $disciplineBlame->setStudent(null);
  405.             }
  406.         }
  407.         return $this;
  408.     }
  409.     /**
  410.      * @return Collection<int, DisciplineExclusion>
  411.      */
  412.     public function getDisciplineExclusions(): Collection
  413.     {
  414.         return $this->disciplineExclusions;
  415.     }
  416.     public function addDisciplineExclusion(DisciplineExclusion $disciplineExclusion): static
  417.     {
  418.         if (!$this->disciplineExclusions->contains($disciplineExclusion)) {
  419.             $this->disciplineExclusions->add($disciplineExclusion);
  420.             $disciplineExclusion->setStudent($this);
  421.         }
  422.         return $this;
  423.     }
  424.     public function removeDisciplineExclusion(DisciplineExclusion $disciplineExclusion): static
  425.     {
  426.         if ($this->disciplineExclusions->removeElement($disciplineExclusion)) {
  427.             // set the owning side to null (unless already changed)
  428.             if ($disciplineExclusion->getStudent() === $this) {
  429.                 $disciplineExclusion->setStudent(null);
  430.             }
  431.         }
  432.         return $this;
  433.     }
  434.     /**
  435.      * @return Collection<int, DisciplineRetained>
  436.      */
  437.     public function getDisciplineRetaineds(): Collection
  438.     {
  439.         return $this->disciplineRetaineds;
  440.     }
  441.     public function addDisciplineRetained(DisciplineRetained $disciplineRetained): static
  442.     {
  443.         if (!$this->disciplineRetaineds->contains($disciplineRetained)) {
  444.             $this->disciplineRetaineds->add($disciplineRetained);
  445.             $disciplineRetained->setStudent($this);
  446.         }
  447.         return $this;
  448.     }
  449.     public function removeDisciplineRetained(DisciplineRetained $disciplineRetained): static
  450.     {
  451.         if ($this->disciplineRetaineds->removeElement($disciplineRetained)) {
  452.             // set the owning side to null (unless already changed)
  453.             if ($disciplineRetained->getStudent() === $this) {
  454.                 $disciplineRetained->setStudent(null);
  455.             }
  456.         }
  457.         return $this;
  458.     }
  459.     public function getDefinitiveExclusion(): ?DefinitiveExclusion
  460.     {
  461.         return $this->definitiveExclusion;
  462.     }
  463.     public function setDefinitiveExclusion(DefinitiveExclusion $definitiveExclusion): static
  464.     {
  465.         // set the owning side of the relation if necessary
  466.         if ($definitiveExclusion->getStudent() !== $this) {
  467.             $definitiveExclusion->setStudent($this);
  468.         }
  469.         $this->definitiveExclusion $definitiveExclusion;
  470.         return $this;
  471.     }
  472.     /**
  473.      * @return Collection<int, DisciplineConcile>
  474.      */
  475.     public function getDisciplineConciles(): Collection
  476.     {
  477.         return $this->disciplineConciles;
  478.     }
  479.     public function addDisciplineConcile(DisciplineConcile $disciplineConcile): static
  480.     {
  481.         if (!$this->disciplineConciles->contains($disciplineConcile)) {
  482.             $this->disciplineConciles->add($disciplineConcile);
  483.             $disciplineConcile->setStudent($this);
  484.         }
  485.         return $this;
  486.     }
  487.     public function removeDisciplineConcile(DisciplineConcile $disciplineConcile): static
  488.     {
  489.         if ($this->disciplineConciles->removeElement($disciplineConcile)) {
  490.             // set the owning side to null (unless already changed)
  491.             if ($disciplineConcile->getStudent() === $this) {
  492.                 $disciplineConcile->setStudent(null);
  493.             }
  494.         }
  495.         return $this;
  496.     }
  497.     /**
  498.      * @return Collection<int, PrimaryNote>
  499.      */
  500.     public function getPrimaryNotes(): Collection
  501.     {
  502.         return $this->primaryNotes;
  503.     }
  504.     public function addPrimaryNote(PrimaryNote $primaryNote): static
  505.     {
  506.         if (!$this->primaryNotes->contains($primaryNote)) {
  507.             $this->primaryNotes->add($primaryNote);
  508.             $primaryNote->setStudent($this);
  509.         }
  510.         return $this;
  511.     }
  512.     public function removePrimaryNote(PrimaryNote $primaryNote): static
  513.     {
  514.         if ($this->primaryNotes->removeElement($primaryNote)) {
  515.             // set the owning side to null (unless already changed)
  516.             if ($primaryNote->getStudent() === $this) {
  517.                 $primaryNote->setStudent(null);
  518.             }
  519.         }
  520.         return $this;
  521.     }
  522.     /**
  523.      * @return Collection<int, DisciplinePunish>
  524.      */
  525.     public function getDisciplinePunishes(): Collection
  526.     {
  527.         return $this->disciplinePunishes;
  528.     }
  529.     public function addDisciplinePunish(DisciplinePunish $disciplinePunish): static
  530.     {
  531.         if (!$this->disciplinePunishes->contains($disciplinePunish)) {
  532.             $this->disciplinePunishes->add($disciplinePunish);
  533.             $disciplinePunish->setStudent($this);
  534.         }
  535.         return $this;
  536.     }
  537.     public function removeDisciplinePunish(DisciplinePunish $disciplinePunish): static
  538.     {
  539.         if ($this->disciplinePunishes->removeElement($disciplinePunish)) {
  540.             // set the owning side to null (unless already changed)
  541.             if ($disciplinePunish->getStudent() === $this) {
  542.                 $disciplinePunish->setStudent(null);
  543.             }
  544.         }
  545.         return $this;
  546.     }
  547.     
  548.     public function getPicture(): ?string
  549.     {
  550.         return $this->picture;
  551.     }
  552.     public function setPicture(?string $picture): static
  553.     {
  554.         $this->picture $picture;
  555.         return $this;
  556.     }
  557.     public function getBornArrondissement(): ?string
  558.     {
  559.         return $this->bornArrondissement;
  560.     }
  561.     public function setBornArrondissement(?string $bornArrondissement): static
  562.     {
  563.         $this->bornArrondissement $bornArrondissement;
  564.         return $this;
  565.     }
  566.     public function getBornDepartement(): ?string
  567.     {
  568.         return $this->bornDepartement;
  569.     }
  570.     public function setBornDepartement(?string $bornDepartement): static
  571.     {
  572.         $this->bornDepartement $bornDepartement;
  573.         return $this;
  574.     }
  575.     /**
  576.      * @return Collection<int, Blame>
  577.      */
  578.     public function getBlames(): Collection
  579.     {
  580.         return $this->blames;
  581.     }
  582.     public function addBlame(Blame $blame): static
  583.     {
  584.         if (!$this->blames->contains($blame)) {
  585.             $this->blames->add($blame);
  586.             $blame->setStudent($this);
  587.         }
  588.         return $this;
  589.     }
  590.     public function removeBlame(Blame $blame): static
  591.     {
  592.         if ($this->blames->removeElement($blame)) {
  593.             // set the owning side to null (unless already changed)
  594.             if ($blame->getStudent() === $this) {
  595.                 $blame->setStudent(null);
  596.             }
  597.         }
  598.         return $this;
  599.     }
  600.     /**
  601.      * @return Collection<int, Warning>
  602.      */
  603.     public function getWarnings(): Collection
  604.     {
  605.         return $this->warnings;
  606.     }
  607.     public function addWarning(Warning $warning): static
  608.     {
  609.         if (!$this->warnings->contains($warning)) {
  610.             $this->warnings->add($warning);
  611.             $warning->setStudent($this);
  612.         }
  613.         return $this;
  614.     }
  615.     public function removeWarning(Warning $warning): static
  616.     {
  617.         if ($this->warnings->removeElement($warning)) {
  618.             // set the owning side to null (unless already changed)
  619.             if ($warning->getStudent() === $this) {
  620.                 $warning->setStudent(null);
  621.             }
  622.         }
  623.         return $this;
  624.     }
  625.     /**
  626.      * @return Collection<int, Retained>
  627.      */
  628.     public function getRetaineds(): Collection
  629.     {
  630.         return $this->retaineds;
  631.     }
  632.     public function addRetained(Retained $retained): static
  633.     {
  634.         if (!$this->retaineds->contains($retained)) {
  635.             $this->retaineds->add($retained);
  636.             $retained->setStudent($this);
  637.         }
  638.         return $this;
  639.     }
  640.     public function removeRetained(Retained $retained): static
  641.     {
  642.         if ($this->retaineds->removeElement($retained)) {
  643.             // set the owning side to null (unless already changed)
  644.             if ($retained->getStudent() === $this) {
  645.                 $retained->setStudent(null);
  646.             }
  647.         }
  648.         return $this;
  649.     }
  650.     public function getFather(): ?string
  651.     {
  652.         return $this->father;
  653.     }
  654.     public function setFather(?string $father): static
  655.     {
  656.         $this->father $father;
  657.         return $this;
  658.     }
  659.     public function getMother(): ?string
  660.     {
  661.         return $this->mother;
  662.     }
  663.     public function setMother(?string $mother): static
  664.     {
  665.         $this->mother $mother;
  666.         return $this;
  667.     }
  668.     public function getBornDay(): ?\DateTimeInterface
  669.     {
  670.         return $this->bornDay;
  671.     }
  672.     public function setBornDay(?\DateTimeInterface $bornDay): static
  673.     {
  674.         $this->bornDay $bornDay;
  675.         return $this;
  676.     }
  677.     public function getGovMatricule(): ?string
  678.     {
  679.         return $this->govMatricule;
  680.     }
  681.     public function setGovMatricule(?string $govMatricule): static
  682.     {
  683.         $this->govMatricule $govMatricule;
  684.         return $this;
  685.     }
  686. }