src/Entity/Profile.php line 12

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\ProfileRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. #[ORM\Entity(repositoryClassProfileRepository::class)]
  8. #[ORM\HasLifecycleCallbacks]
  9. class Profile
  10. {
  11.     const PERCENT_STEP_1 25;
  12.     const PERCENT_STEP_2 50;
  13.     const FORMATION_TYPE_INITIAL 1;
  14.     const FORMATION_TYPE_ALTERNANCE 2;
  15.     const QCM_LOCAL 1;
  16.     const QCM_ONLINE 2;
  17.     #[ORM\Id]
  18.     #[ORM\GeneratedValue]
  19.     #[ORM\Column(type'integer')]
  20.     private $id;
  21.     #[ORM\ManyToOne(targetEntityUser::class, inversedBy'profiles'cascade: ['persist'])]
  22.     private ?\App\Entity\User $user null;
  23.     #[ORM\ManyToMany(targetEntityProgram::class, inversedBy'profiles')]
  24.     private Collection $programs;
  25.     #[ORM\Column(type'string'length255nullabletrue)]
  26.     private ?string $schoolName null;
  27.     #[ORM\Column(type'string'length255nullabletrue)]
  28.     private ?string $diplomaName null;
  29.     #[ORM\ManyToOne(targetEntityStudyLevel::class, inversedBy'profiles')]
  30.     private ?\App\Entity\StudyLevel $studyLevel null;
  31.     #[ORM\ManyToOne(targetEntityUser::class, inversedBy'profiles')]
  32.     private ?\App\Entity\User $commercial null;
  33.     #[ORM\ManyToOne(targetEntityEnglishLevel::class, inversedBy'profiles')]
  34.     private ?\App\Entity\EnglishLevel $englishLevel null;
  35.     #[ORM\OneToMany(targetEntityProfileFile::class, mappedBy'profile'orphanRemovaltruecascade: ['persist''remove'])]
  36.     private Collection $profileFiles;
  37.     #[ORM\ManyToOne(targetEntityJury::class, inversedBy'profiles')]
  38.     private ?\App\Entity\Jury $jury null;
  39.     #[ORM\ManyToOne(targetEntityOraux::class, inversedBy'profiles')]
  40.     private ?\App\Entity\Oraux $oraux null;
  41.     #[ORM\ManyToOne(targetEntityStatus::class, inversedBy'profiles')]
  42.     private ?\App\Entity\Status $status null;
  43.     #[ORM\ManyToOne(targetEntityCampaign::class, inversedBy'profiles')]
  44.     private ?\App\Entity\Campaign $campaign null;
  45.     #[ORM\OneToMany(targetEntityAppointmentPerson::class, mappedBy'profile'orphanRemovaltrue)]
  46.     private Collection $appointmentPerson;
  47.     #[ORM\ManyToOne(targetEntityProgram::class, inversedBy'selectedProfiles')]
  48.     private ?\App\Entity\Program $selectedProgram null;
  49.     #[ORM\Column(type'json'nullabletrue)]
  50.     private ?array $juryResult = [];
  51.     #[ORM\Column(type'date'nullabletrue)]
  52.     private ?\DateTimeInterface $juryDate null;
  53.     #[ORM\Column(type'json'nullabletrue)]
  54.     private ?array $orauxResult = [];
  55.     #[ORM\Column(type'date'nullabletrue)]
  56.     private ?\DateTimeInterface $orauxDate null;
  57.     #[ORM\OneToMany(targetEntityProfileNote::class, mappedBy'profile'orphanRemovaltruecascade: ['persist''remove'])]
  58.     private Collection $profileNotes;
  59.     #[ORM\Column(type'string'length255nullabletrue)]
  60.     private ?string $year null;
  61.     #[ORM\Column(type'integer'nullabletrue)]
  62.     private ?int $percent null;
  63.     #[ORM\Column(type'json'nullabletrue)]
  64.     private ?array $information = [];
  65.     #[ORM\Column(type'json'nullabletrue)]
  66.     private ?array $marketing = [];
  67.     #[ORM\ManyToOne(targetEntityMediaChannel::class, inversedBy'profiles')]
  68.     private ?\App\Entity\MediaChannel $mediaChannel null;
  69.     #[ORM\ManyToOne(targetEntityLandingpage::class, inversedBy'profiles')]
  70.     private ?\App\Entity\Landingpage $landingpage null;
  71.     #[ORM\OneToMany(targetEntityProfileQcm::class, mappedBy'profile'orphanRemovaltrue)]
  72.     private Collection $profileQcms;
  73.     #[ORM\Column(type'smallint'nullabletrue)]
  74.     private ?int $typeFormation null;
  75.     #[ORM\Column(type'string'length255nullabletrue)]
  76.     private ?string $hostCompany null;
  77.     #[ORM\OneToMany(targetEntityOpenDayPerson::class, mappedBy'profile'orphanRemovaltrue)]
  78.     private Collection $openDayPeople;
  79.     #[ORM\ManyToOne(targetEntityCampus::class, inversedBy'profiles')]
  80.     private ?\App\Entity\Campus $campus null;
  81.     #[ORM\ManyToOne(targetEntityTask::class, inversedBy'profiles')]
  82.     private ?\App\Entity\Task $task null;
  83.     #[ORM\Column(type'date'nullabletrue)]
  84.     private ?\DateTimeInterface $taskDate null;
  85.     #[ORM\Column(type'integer'nullabletrueoptions: ['default' => 0])]
  86.     private ?int $taskStatus null;
  87.     #[ORM\ManyToOne(targetEntityCampus::class)]
  88.     private ?\App\Entity\Campus $campus1 null;
  89.     #[ORM\ManyToOne(targetEntityCampus::class)]
  90.     private ?\App\Entity\Campus $campus2 null;
  91.     #[ORM\ManyToOne(targetEntityCampus::class)]
  92.     private ?\App\Entity\Campus $campus3 null;
  93.     #[ORM\OneToOne(targetEntityMedia::class, cascade: ['persist''remove'])]
  94.     private ?\App\Entity\Media $fileCv null;
  95.     #[ORM\OneToOne(targetEntityMedia::class, cascade: ['persist''remove'])]
  96.     private ?\App\Entity\Media $fileLetter null;
  97.     #[ORM\OneToOne(targetEntityMedia::class, cascade: ['persist''remove'])]
  98.     private ?\App\Entity\Media $fileReportCard1 null;
  99.     #[ORM\OneToOne(targetEntityMedia::class, cascade: ['persist''remove'])]
  100.     private ?\App\Entity\Media $fileReportCard2 null;
  101.     #[ORM\OneToOne(targetEntityMedia::class, cascade: ['persist''remove'])]
  102.     private ?\App\Entity\Media $fileReportCard3 null;
  103.     #[ORM\OneToOne(targetEntityMedia::class, cascade: ['persist''remove'])]
  104.     private ?\App\Entity\Media $fileIdentity null;
  105.     #[ORM\OneToOne(targetEntityMedia::class, cascade: ['persist''remove'])]
  106.     private ?\App\Entity\Media $fileResidencePermit null;
  107.     #[ORM\OneToOne(targetEntityMedia::class, cascade: ['persist''remove'])]
  108.     private ?\App\Entity\Media $filePhoto null;
  109.     #[ORM\OneToOne(targetEntityMedia::class, cascade: ['persist''remove'])]
  110.     private ?\App\Entity\Media $fileHandicap null;
  111.     #[ORM\Column(type'date'nullabletrue)]
  112.     private ?\DateTimeInterface $expireIdentity null;
  113.     #[ORM\Column(type'date'nullabletrue)]
  114.     private ?\DateTimeInterface $expireResidencePermit null;
  115.     #[ORM\Column(type'text'nullabletrue)]
  116.     private ?string $motivation null;
  117.     #[ORM\Column(type'text'nullabletrue)]
  118.     private ?string $admissionMessage null;
  119.     #[ORM\ManyToOne(targetEntityCursus::class)]
  120.     private ?\App\Entity\Cursus $cursus null;
  121.     #[ORM\Column(type'boolean'nullabletrue)]
  122.     private ?bool $isHandicap null;
  123.     #[ORM\Column(type'text'nullabletrue)]
  124.     private ?string $handicapInfo null;
  125.     public function __construct()
  126.     {
  127.         $this->programs = new ArrayCollection();
  128.         $this->profileFiles = new ArrayCollection();
  129.         $this->appointmentPerson = new ArrayCollection();
  130.         $this->profileNotes = new ArrayCollection();
  131.         $this->profileQcms = new ArrayCollection();
  132.         $this->openDayPeople = new ArrayCollection();
  133.         $this->notifications = new ArrayCollection();
  134.     }
  135.     public function getId(): ?int
  136.     {
  137.         return $this->id;
  138.     }
  139.     public function getUser(): ?User
  140.     {
  141.         return $this->user;
  142.     }
  143.     public function setUser(?User $user): self
  144.     {
  145.         $this->user $user;
  146.         return $this;
  147.     }
  148.     /**
  149.      * @return Collection<int, Program>
  150.      */
  151.     public function getPrograms(): Collection
  152.     {
  153.         return $this->programs;
  154.     }
  155.     public function addProgram(Program $program): self
  156.     {
  157.         if (!$this->programs->contains($program)) {
  158.             $this->programs[] = $program;
  159.         }
  160.         return $this;
  161.     }
  162.     public function removeProgram(Program $program): self
  163.     {
  164.         $this->programs->removeElement($program);
  165.         return $this;
  166.     }
  167.     public function getSchoolName(): ?string
  168.     {
  169.         return $this->schoolName;
  170.     }
  171.     public function setSchoolName(?string $schoolName): self
  172.     {
  173.         $this->schoolName $schoolName;
  174.         return $this;
  175.     }
  176.     public function getDiplomaName(): ?string
  177.     {
  178.         return $this->diplomaName;
  179.     }
  180.     public function setDiplomaName(?string $diplomaName): self
  181.     {
  182.         $this->diplomaName $diplomaName;
  183.         return $this;
  184.     }
  185.     public function getStudyLevel(): ?StudyLevel
  186.     {
  187.         return $this->studyLevel;
  188.     }
  189.     public function setStudyLevel(?StudyLevel $studyLevel): self
  190.     {
  191.         $this->studyLevel $studyLevel;
  192.         return $this;
  193.     }
  194.     public function getCommercial(): ?User
  195.     {
  196.         return $this->commercial;
  197.     }
  198.     public function setCommercial(?User $user): self
  199.     {
  200.         $this->commercial $user;
  201.         return $this;
  202.     }
  203.     public function getEnglishLevel(): ?EnglishLevel
  204.     {
  205.         return $this->englishLevel;
  206.     }
  207.     public function setEnglishLevel(?EnglishLevel $englishLevel): self
  208.     {
  209.         $this->englishLevel $englishLevel;
  210.         return $this;
  211.     }
  212.     /**
  213.      * @return Collection<int, ProfileFile>
  214.      */
  215.     public function getProfileFiles(): Collection
  216.     {
  217.         return $this->profileFiles;
  218.     }
  219.     public function addProfileFile(ProfileFile $profileFile): self
  220.     {
  221.         if (!$this->profileFiles->contains($profileFile)) {
  222.             $this->profileFiles[] = $profileFile;
  223.             $profileFile->setProfile($this);
  224.         }
  225.         return $this;
  226.     }
  227.     public function removeProfileFile(ProfileFile $profileFile): self
  228.     {
  229.         if ($this->profileFiles->removeElement($profileFile)) {
  230.             // set the owning side to null (unless already changed)
  231.             if ($profileFile->getProfile() === $this) {
  232.                 $profileFile->setProfile(null);
  233.             }
  234.         }
  235.         return $this;
  236.     }
  237.     public function getJury(): ?Jury
  238.     {
  239.         return $this->jury;
  240.     }
  241.     public function setJury(?Jury $jury): self
  242.     {
  243.         $this->jury $jury;
  244.         return $this;
  245.     }
  246.     public function getOraux(): ?Oraux
  247.     {
  248.         return $this->oraux;
  249.     }
  250.     public function setOraux(?Oraux $oraux): self
  251.     {
  252.         $this->oraux $oraux;
  253.         return $this;
  254.     }
  255.     public function getStatus(): ?Status
  256.     {
  257.         return $this->status;
  258.     }
  259.     public function setStatus(?Status $status): self
  260.     {
  261.         $this->status $status;
  262.         return $this;
  263.     }
  264.     public function getCampaign(): ?Campaign
  265.     {
  266.         return $this->campaign;
  267.     }
  268.     public function setCampaign(?Campaign $campaign): self
  269.     {
  270.         $this->campaign $campaign;
  271.         return $this;
  272.     }
  273.     /**
  274.      * @return Collection<int, AppointmentPerson>
  275.      */
  276.     public function getAppointmentPerson(): Collection
  277.     {
  278.         return $this->appointmentPerson;
  279.     }
  280.     public function addAppointmentPerson(AppointmentPerson $appointmentPerson): self
  281.     {
  282.         if (!$this->appointmentPerson->contains($appointmentPerson)) {
  283.             $this->appointmentPerson[] = $appointmentPerson;
  284.             $appointmentPerson->setProfile($this);
  285.         }
  286.         return $this;
  287.     }
  288.     public function removeAppointmentPerson(AppointmentPerson $appointmentPerson): self
  289.     {
  290.         if ($this->appointmentPerson->removeElement($appointmentPerson)) {
  291.             // set the owning side to null (unless already changed)
  292.             if ($appointmentPerson->getProfile() === $this) {
  293.                 $appointmentPerson->setProfile(null);
  294.             }
  295.         }
  296.         return $this;
  297.     }
  298.     public function getSelectedProgram(): ?Program
  299.     {
  300.         return $this->selectedProgram;
  301.     }
  302.     public function setSelectedProgram(?Program $selectedProgram): self
  303.     {
  304.         $this->selectedProgram $selectedProgram;
  305.         return $this;
  306.     }
  307.     public function getJuryResult(): ?array
  308.     {
  309.         return $this->juryResult;
  310.     }
  311.     public function setJuryResult(?array $juryResult): self
  312.     {
  313.         $this->juryResult $juryResult;
  314.         return $this;
  315.     }
  316.     public function getJuryDate(): ?\DateTimeInterface
  317.     {
  318.         return $this->juryDate;
  319.     }
  320.     public function setJuryDate(?\DateTimeInterface $juryDate): self
  321.     {
  322.         $this->juryDate $juryDate;
  323.         return $this;
  324.     }
  325.     public function getOrauxResult(): ?array
  326.     {
  327.         return $this->orauxResult;
  328.     }
  329.     public function setOrauxResult(?array $orauxResult): self
  330.     {
  331.         $this->orauxResult $orauxResult;
  332.         return $this;
  333.     }
  334.     public function getOrauxDate(): ?\DateTimeInterface
  335.     {
  336.         return $this->orauxDate;
  337.     }
  338.     public function setOrauxDate(?\DateTimeInterface $orauxDate): self
  339.     {
  340.         $this->orauxDate $orauxDate;
  341.         return $this;
  342.     }
  343.     /**
  344.      * @return Collection<int, ProfileNote>
  345.      */
  346.     public function getProfileNotes(): Collection
  347.     {
  348.         return $this->profileNotes;
  349.     }
  350.     public function addProfileNote(ProfileNote $profileNote): self
  351.     {
  352.         if (!$this->profileNotes->contains($profileNote)) {
  353.             $this->profileNotes[] = $profileNote;
  354.             $profileNote->setProfile($this);
  355.         }
  356.         return $this;
  357.     }
  358.     public function removeProfileNote(ProfileNote $profileNote): self
  359.     {
  360.         if ($this->profileNotes->removeElement($profileNote)) {
  361.             // set the owning side to null (unless already changed)
  362.             if ($profileNote->getProfile() === $this) {
  363.                 $profileNote->setProfile(null);
  364.             }
  365.         }
  366.         return $this;
  367.     }
  368.     public function getYear(): ?string
  369.     {
  370.         return $this->year;
  371.     }
  372.     public function setYear(?string $year): self
  373.     {
  374.         $this->year $year;
  375.         return $this;
  376.     }
  377.     public function getPercent(): ?int
  378.     {
  379.         return $this->percent;
  380.     }
  381.     public function setPercent(?int $percent): self
  382.     {
  383.         $this->percent $percent;
  384.         return $this;
  385.     }
  386.     public function getInformation(): ?array
  387.     {
  388.         return $this->information;
  389.     }
  390.     public function setInformation(?array $information): self
  391.     {
  392.         $this->information $information;
  393.         return $this;
  394.     }
  395.     public function getMarketing(): ?array
  396.     {
  397.         return $this->marketing;
  398.     }
  399.     public function setMarketing(?array $marketing): self
  400.     {
  401.         $this->marketing $marketing;
  402.         return $this;
  403.     }
  404.     public function getMediaChannel(): ?MediaChannel
  405.     {
  406.         return $this->mediaChannel;
  407.     }
  408.     public function setMediaChannel(?MediaChannel $mediaChannel): self
  409.     {
  410.         $this->mediaChannel $mediaChannel;
  411.         return $this;
  412.     }
  413.     public function getLandingpage(): ?Landingpage
  414.     {
  415.         return $this->landingpage;
  416.     }
  417.     public function setLandingpage(?Landingpage $landingpage): self
  418.     {
  419.         $this->landingpage $landingpage;
  420.         return $this;
  421.     }
  422.     /**
  423.      * @return Collection<int, ProfileQcm>
  424.      */
  425.     public function getProfileQcms(): Collection
  426.     {
  427.         return $this->profileQcms;
  428.     }
  429.     public function addProfileQcm(ProfileQcm $profileQcm): self
  430.     {
  431.         if (!$this->profileQcms->contains($profileQcm)) {
  432.             $this->profileQcms[] = $profileQcm;
  433.             $profileQcm->setProfile($this);
  434.         }
  435.         return $this;
  436.     }
  437.     public function removeProfileQcm(ProfileQcm $profileQcm): self
  438.     {
  439.         if ($this->profileQcms->removeElement($profileQcm)) {
  440.             // set the owning side to null (unless already changed)
  441.             if ($profileQcm->getProfile() === $this) {
  442.                 $profileQcm->setProfile(null);
  443.             }
  444.         }
  445.         return $this;
  446.     }
  447.     public function getTypeFormation(): ?int
  448.     {
  449.         return $this->typeFormation;
  450.     }
  451.     public function setTypeFormation(?int $typeFormation): self
  452.     {
  453.         $this->typeFormation $typeFormation;
  454.         return $this;
  455.     }
  456.     public function getHostCompany(): ?string
  457.     {
  458.         return $this->hostCompany;
  459.     }
  460.     public function setHostCompany(?string $hostCompany): self
  461.     {
  462.         $this->hostCompany $hostCompany;
  463.         return $this;
  464.     }
  465.     /**
  466.      * @return Collection<int, OpenDayPerson>
  467.      */
  468.     public function getOpenDayPeople(): Collection
  469.     {
  470.         return $this->openDayPeople;
  471.     }
  472.     public function addOpenDayPerson(OpenDayPerson $openDayPerson): self
  473.     {
  474.         if (!$this->openDayPeople->contains($openDayPerson)) {
  475.             $this->openDayPeople[] = $openDayPerson;
  476.             $openDayPerson->setProfile($this);
  477.         }
  478.         return $this;
  479.     }
  480.     public function removeOpenDayPerson(OpenDayPerson $openDayPerson): self
  481.     {
  482.         if ($this->openDayPeople->removeElement($openDayPerson)) {
  483.             // set the owning side to null (unless already changed)
  484.             if ($openDayPerson->getProfile() === $this) {
  485.                 $openDayPerson->setProfile(null);
  486.             }
  487.         }
  488.         return $this;
  489.     }
  490.     public function getCampus(): ?Campus
  491.     {
  492.         return $this->campus;
  493.     }
  494.     public function setCampus(?Campus $campus): self
  495.     {
  496.         $this->campus $campus;
  497.         return $this;
  498.     }
  499.     public function getTask(): ?Task
  500.     {
  501.         return $this->task;
  502.     }
  503.     public function setTask(?Task $task): self
  504.     {
  505.         $this->task $task;
  506.         return $this;
  507.     }
  508.     public function getTaskDate(): ?\DateTimeInterface
  509.     {
  510.         return $this->taskDate;
  511.     }
  512.     public function setTaskDate(?\DateTimeInterface $taskDate): self
  513.     {
  514.         $this->taskDate $taskDate;
  515.         return $this;
  516.     }
  517.     public function getTaskStatus(): ?int
  518.     {
  519.         return $this->taskStatus;
  520.     }
  521.     public function setTaskStatus(?int $taskStatus): self
  522.     {
  523.         $this->taskStatus $taskStatus;
  524.         return $this;
  525.     }
  526.     public function getCampus1(): ?Campus
  527.     {
  528.         return $this->campus1;
  529.     }
  530.     public function setCampus1(?Campus $campus1): self
  531.     {
  532.         $this->campus1 $campus1;
  533.         return $this;
  534.     }
  535.     public function getCampus2(): ?Campus
  536.     {
  537.         return $this->campus2;
  538.     }
  539.     public function setCampus2(?Campus $campus2): self
  540.     {
  541.         $this->campus2 $campus2;
  542.         return $this;
  543.     }
  544.     public function getCampus3(): ?Campus
  545.     {
  546.         return $this->campus3;
  547.     }
  548.     public function setCampus3(?Campus $campus3): self
  549.     {
  550.         $this->campus3 $campus3;
  551.         return $this;
  552.     }
  553.     public function getFileCv(): ?Media
  554.     {
  555.         return $this->fileCv;
  556.     }
  557.     public function setFileCv(?Media $fileCv): self
  558.     {
  559.         $this->fileCv $fileCv;
  560.         return $this;
  561.     }
  562.     public function getFileLetter(): ?Media
  563.     {
  564.         return $this->fileLetter;
  565.     }
  566.     public function setFileLetter(?Media $fileLetter): self
  567.     {
  568.         $this->fileLetter $fileLetter;
  569.         return $this;
  570.     }
  571.     public function getFileReportCard1(): ?Media
  572.     {
  573.         return $this->fileReportCard1;
  574.     }
  575.     public function setFileReportCard1(?Media $fileReportCard1): self
  576.     {
  577.         $this->fileReportCard1 $fileReportCard1;
  578.         return $this;
  579.     }
  580.     public function getFileReportCard2(): ?Media
  581.     {
  582.         return $this->fileReportCard2;
  583.     }
  584.     public function setFileReportCard2(?Media $fileReportCard2): self
  585.     {
  586.         $this->fileReportCard2 $fileReportCard2;
  587.         return $this;
  588.     }
  589.     public function getFileReportCard3(): ?Media
  590.     {
  591.         return $this->fileReportCard3;
  592.     }
  593.     public function setFileReportCard3(?Media $fileReportCard3): self
  594.     {
  595.         $this->fileReportCard3 $fileReportCard3;
  596.         return $this;
  597.     }
  598.     public function getFileIdentity(): ?Media
  599.     {
  600.         return $this->fileIdentity;
  601.     }
  602.     public function setFileIdentity(?Media $fileIdentity): self
  603.     {
  604.         $this->fileIdentity $fileIdentity;
  605.         return $this;
  606.     }
  607.     public function getFileResidencePermit(): ?Media
  608.     {
  609.         return $this->fileResidencePermit;
  610.     }
  611.     public function setFileResidencePermit(?Media $fileResidencePermit): self
  612.     {
  613.         $this->fileResidencePermit $fileResidencePermit;
  614.         return $this;
  615.     }
  616.     public function getFilePhoto(): ?Media
  617.     {
  618.         return $this->filePhoto;
  619.     }
  620.     public function setFilePhoto(?Media $filePhoto): self
  621.     {
  622.         $this->filePhoto $filePhoto;
  623.         return $this;
  624.     }
  625.     public function getFileHandicap(): ?Media
  626.     {
  627.         return $this->fileHandicap;
  628.     }
  629.     public function setFileHandicap(?Media $fileHandicap): self
  630.     {
  631.         $this->fileHandicap $fileHandicap;
  632.         return $this;
  633.     }
  634.     public function getExpireIdentity(): ?\DateTimeInterface
  635.     {
  636.         return $this->expireIdentity;
  637.     }
  638.     public function setExpireIdentity(?\DateTimeInterface $expireIdentity): self
  639.     {
  640.         $this->expireIdentity $expireIdentity;
  641.         return $this;
  642.     }
  643.     public function getExpireResidencePermit(): ?\DateTimeInterface
  644.     {
  645.         return $this->expireResidencePermit;
  646.     }
  647.     public function setExpireResidencePermit(?\DateTimeInterface $expireResidencePermit): self
  648.     {
  649.         $this->expireResidencePermit $expireResidencePermit;
  650.         return $this;
  651.     }
  652.     public function getMotivation(): ?string
  653.     {
  654.         return $this->motivation;
  655.     }
  656.     public function setMotivation(?string $motivation): self
  657.     {
  658.         $this->motivation $motivation;
  659.         return $this;
  660.     }
  661.     public function getAdmissionMessage(): ?string
  662.     {
  663.         return $this->admissionMessage;
  664.     }
  665.     public function setAdmissionMessage(?string $admissionMessage): self
  666.     {
  667.         $this->admissionMessage $admissionMessage;
  668.         return $this;
  669.     }
  670.     public function getCursus(): ?Cursus
  671.     {
  672.         return $this->cursus;
  673.     }
  674.     public function setCursus(?Cursus $cursus): self
  675.     {
  676.         $this->cursus $cursus;
  677.         return $this;
  678.     }
  679.     public function getIsHandicap(): ?bool
  680.     {
  681.         return $this->isHandicap;
  682.     }
  683.     public function setIsHandicap(?bool $isHandicap): self
  684.     {
  685.         $this->isHandicap $isHandicap;
  686.         return $this;
  687.     }
  688.     public function getHandicapInfo(): ?string
  689.     {
  690.         return $this->handicapInfo;
  691.     }
  692.     public function setHandicapInfo(?string $handicapInfo): self
  693.     {
  694.         $this->handicapInfo $handicapInfo;
  695.         return $this;
  696.     }
  697.     public function calculateProfilePercent()
  698.     {
  699.         $percent 25;
  700.         $info $this->getInformation();
  701.         if (
  702.             !empty($this->getStudyLevel())
  703.             || (!empty($info)
  704.                 && (!empty($info['previousSchool'])
  705.                     || !empty($info['previousDegree'])
  706.                     || !empty($info['previousDegreeYear'])
  707.                     || !empty($info['previousDegreeDescription'])
  708.                     || !empty($info['currentDegree'])
  709.                     || !empty($info['currentDegreeYear'])
  710.                     || !empty($info['currentDegreeDescription'])
  711.                 )
  712.             )
  713.         ) {
  714.             $percent += 25;
  715.         }
  716.         if (!empty($this->getFileCv())) {
  717.             $percent += 25;
  718.         }
  719.         if (
  720.             !empty($this->getFileReportCard1())
  721.             || !empty($this->getFileReportCard2())
  722.             || !empty($this->getFileReportCard3())
  723.             || !empty($this->getFileIdentity())
  724.             || !empty($this->getFileResidencePermit())
  725.             || !empty($this->getFilePhoto())
  726.             || !empty($this->getFileHandicap())
  727.             || !empty($this->getFileReportCard2())
  728.             || !empty($this->getFileReportCard2())
  729.         ) {
  730.             $percent += 25;
  731.         }
  732.         $this->setPercent($percent);
  733.     }
  734.     #[ORM\Column(type'datetime'nullabletrue)]
  735.     private \DateTimeInterface|null|\DateTime $createdDate null;
  736.     #[ORM\Column(type'datetime'nullabletrue)]
  737.     private $updatedDate;
  738.     #[ORM\Column(type'json'nullabletrue)]
  739.     private ?array $entreprise = [];
  740.     #[ORM\Column(type'json'nullabletrue)]
  741.     private ?array $contract = [];
  742.     #[ORM\Column(type'string'length255nullabletrue)]
  743.     private ?string $ficheEmail null;
  744.     #[ORM\OneToMany(targetEntityNotification::class, mappedBy'profile'orphanRemovaltruecascade: ['persist''remove'])]
  745.     private Collection $notifications;
  746.     #[ORM\Column(type'json'nullabletrue)]
  747.     private ?array $qcmResults = [];
  748.     #[ORM\Column(type'string'length255nullabletrue)]
  749.     private ?string $qcmToken null;
  750.     #[ORM\Column(type'boolean'nullabletrue)]
  751.     private ?bool $isDuplicate null;
  752.     #[ORM\Column(type'boolean'nullabletrue)]
  753.     private ?bool $repay null;
  754.     #[ORM\Column(type'datetime'nullabletrue)]
  755.     private ?\DateTimeInterface $abandonDate null;
  756.     #[ORM\Column(type'text'nullabletrue)]
  757.     private ?string $abandonNote null;
  758.     #[ORM\Column(type'integer'nullabletrue)]
  759.     private ?int $paymentMethod null;
  760.     #[ORM\Column(type'datetime'nullabletrue)]
  761.     private ?\DateTimeInterface $paymentDate null;
  762.     #[ORM\Column(type'integer'nullabletrue)]
  763.     private ?int $qcmMethod null;
  764.     #[ORM\OneToOne(targetEntityMedia::class, cascade: ['persist''remove'])]
  765.     private ?\App\Entity\Media $fileDiplome null;
  766.     #[ORM\Column(nullabletrue)]
  767.     private ?bool $isSent null;
  768.     public function getCreatedDate(): ?\DateTimeInterface
  769.     {
  770.         return $this->createdDate;
  771.     }
  772.     public function setCreatedDate(?\DateTimeInterface $createdDate): self
  773.     {
  774.         $this->createdDate $createdDate;
  775.         return $this;
  776.     }
  777.     public function getUpdatedDate(): ?\DateTimeInterface
  778.     {
  779.         return $this->updatedDate;
  780.     }
  781.     public function setUpdatedDate(?\DateTimeInterface $updatedDate): self
  782.     {
  783.         $this->updatedDate $updatedDate;
  784.         return $this;
  785.     }
  786.     /**
  787.      * Gets triggered only on insert
  788.      */
  789.     #[ORM\PrePersist]
  790.     public function onPrePersist()
  791.     {
  792.         if (!$this->createdDate) {
  793.             $this->createdDate = new \DateTime('now');
  794.         }
  795.         if (!$this->updatedDate) {
  796.             $this->updatedDate $this->createdDate;
  797.         }
  798.         $this->calculateProfilePercent();
  799.     }
  800.     /**
  801.      * Gets triggered every time on update
  802.      */
  803.     #[ORM\PreUpdate]
  804.     public function onPreUpdate()
  805.     {
  806.         $this->updatedDate = new \DateTime("now");
  807.         $this->calculateProfilePercent();
  808.     }
  809.     public function getEntreprise(): ?array
  810.     {
  811.         return $this->entreprise;
  812.     }
  813.     public function setEntreprise(?array $entreprise): self
  814.     {
  815.         $this->entreprise $entreprise;
  816.         return $this;
  817.     }
  818.     public function getContract(): ?array
  819.     {
  820.         return $this->contract;
  821.     }
  822.     public function setContract(?array $contract): self
  823.     {
  824.         $this->contract $contract;
  825.         return $this;
  826.     }
  827.     public function getFicheEmail(): ?string
  828.     {
  829.         return $this->ficheEmail;
  830.     }
  831.     public function setFicheEmail(?string $ficheEmail): self
  832.     {
  833.         $this->ficheEmail $ficheEmail;
  834.         return $this;
  835.     }
  836.     /**
  837.      * @return Collection<int, Notification>
  838.      */
  839.     public function getNotifications(): Collection
  840.     {
  841.         return $this->notifications;
  842.     }
  843.     public function addNotification(Notification $notification): self
  844.     {
  845.         if (!$this->notifications->contains($notification)) {
  846.             $this->notifications[] = $notification;
  847.             $notification->setProfile($this);
  848.         }
  849.         return $this;
  850.     }
  851.     public function removeNotification(Notification $notification): self
  852.     {
  853.         if ($this->notifications->removeElement($notification)) {
  854.             // set the owning side to null (unless already changed)
  855.             if ($notification->getProfile() === $this) {
  856.                 $notification->setProfile(null);
  857.             }
  858.         }
  859.         return $this;
  860.     }
  861.     public function getQcmResults(): ?array
  862.     {
  863.         return $this->qcmResults;
  864.     }
  865.     public function setQcmResults(?array $qcmResults): self
  866.     {
  867.         $this->qcmResults $qcmResults;
  868.         return $this;
  869.     }
  870.     public function getQcmToken(): ?string
  871.     {
  872.         return $this->qcmToken;
  873.     }
  874.     public function setQcmToken(?string $qcmToken): self
  875.     {
  876.         $this->qcmToken $qcmToken;
  877.         return $this;
  878.     }
  879.     public function getIsDuplicate(): ?bool
  880.     {
  881.         return $this->isDuplicate;
  882.     }
  883.     public function setIsDuplicate(?bool $isDuplicate): self
  884.     {
  885.         $this->isDuplicate $isDuplicate;
  886.         return $this;
  887.     }
  888.     public function getRepay(): ?bool
  889.     {
  890.         return $this->repay;
  891.     }
  892.     public function setRepay(?bool $repay): self
  893.     {
  894.         $this->repay $repay;
  895.         return $this;
  896.     }
  897.     public function getAbandonDate(): ?\DateTimeInterface
  898.     {
  899.         return $this->abandonDate;
  900.     }
  901.     public function setAbandonDate(?\DateTimeInterface $abandonDate): self
  902.     {
  903.         $this->abandonDate $abandonDate;
  904.         return $this;
  905.     }
  906.     public function getAbandonNote(): ?string
  907.     {
  908.         return $this->abandonNote;
  909.     }
  910.     public function setAbandonNote(?string $abandonNote): self
  911.     {
  912.         $this->abandonNote $abandonNote;
  913.         return $this;
  914.     }
  915.     public function getPaymentMethod(): ?int
  916.     {
  917.         return $this->paymentMethod;
  918.     }
  919.     public function setPaymentMethod(?int $paymentMethod): self
  920.     {
  921.         $this->paymentMethod $paymentMethod;
  922.         return $this;
  923.     }
  924.     public function getPaymentDate(): ?\DateTimeInterface
  925.     {
  926.         return $this->paymentDate;
  927.     }
  928.     public function setPaymentDate(?\DateTimeInterface $paymentDate): self
  929.     {
  930.         $this->paymentDate $paymentDate;
  931.         return $this;
  932.     }
  933.     public function getQcmMethod(): ?int
  934.     {
  935.         return $this->qcmMethod;
  936.     }
  937.     public function setQcmMethod(?int $qcmMethod): self
  938.     {
  939.         $this->qcmMethod $qcmMethod;
  940.         return $this;
  941.     }
  942.     public function getFileDiplome(): ?Media
  943.     {
  944.         return $this->fileDiplome;
  945.     }
  946.     public function setFileDiplome(?Media $fileDiplome): self
  947.     {
  948.         $this->fileDiplome $fileDiplome;
  949.         return $this;
  950.     }
  951.     public function isIsSent(): ?bool
  952.     {
  953.         return $this->isSent;
  954.     }
  955.     public function setIsSent(?bool $isSent): static
  956.     {
  957.         $this->isSent $isSent;
  958.         return $this;
  959.     }
  960. }