src/Entity/Profile.php line 17

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\DBAL\Types\Types;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Symfony\Component\Serializer\Normalizer\NormalizableInterface;
  9. use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
  10. use Symfony\Component\String\Slugger\AsciiSlugger;
  11. /**
  12.  * @ORM\Entity(repositoryClass=ProfileRepository::class)
  13.  */
  14. class Profile implements NormalizableInterface
  15. {
  16.     /**
  17.      * @ORM\Id
  18.      * @ORM\GeneratedValue
  19.      * @ORM\Column(type="integer")
  20.      */
  21.     public $id;
  22.     /**
  23.      * @ORM\Column(type="integer", nullable=true)
  24.      */
  25.     public $cost;
  26.     /**
  27.      * @ORM\Column(type="smallint")
  28.      */
  29.     public $cost_type 0;
  30.     /**
  31.      * @ORM\Column(type="string", length=255, nullable=true)
  32.      */
  33.     public $experience_number;
  34.     /**
  35.      * @ORM\Column(type="smallint", nullable=true)
  36.      */
  37.     public $profile_type 0;
  38.     /**
  39.      * @ORM\Column(type="text", nullable=true)
  40.      */
  41.     public $about;
  42.     /**
  43.      * @ORM\Column(type="string", length=255, nullable=true)
  44.      */
  45.     public $photo;
  46.     /**
  47.      * @ORM\Column(type="string", length=255, nullable=true)
  48.      */
  49.     public $cv_file;
  50.     /**
  51.      * @ORM\Column(type="string", length=255, nullable=true)
  52.      */
  53.     public $location;
  54.     /**
  55.      * @ORM\Column(type="string", length=255, nullable=true)
  56.      */
  57.     public $location2;
  58.     /**
  59.      * @ORM\Column(type="json", nullable=true)
  60.      */
  61.     public $mobility = [];
  62.     /**
  63.      * @ORM\Column(type="string", length=255, nullable=true)
  64.      */
  65.     public $disponibility;
  66.     /**
  67.      * @ORM\ManyToOne(targetEntity=User::class, inversedBy="profiles")
  68.      * @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
  69.      */
  70.     public $user;
  71.     /**
  72.      * @ORM\Column(type="string", length=255, nullable=true)
  73.      */
  74.     public $name;
  75.     /**
  76.      * @ORM\Column(type="string", length=255, nullable=true)
  77.      */
  78.     public $linkedin;
  79.     /**
  80.      * @ORM\Column(type="string", length=255)
  81.      */
  82.     public $title;
  83.     /**
  84.      * @ORM\OneToMany(targetEntity=Skill::class, mappedBy="profile", orphanRemoval=true, cascade={"persist"})
  85.      */
  86.     public $skills;
  87.     /**
  88.      * @ORM\OneToMany(targetEntity=Experience::class, mappedBy="profile", orphanRemoval=true, cascade={"persist"})
  89.      */
  90.     public $experiences;
  91.     /**
  92.      * @ORM\OneToMany(targetEntity=Diplome::class, mappedBy="profile", orphanRemoval=true, cascade={"persist"})
  93.      */
  94.     public $diplomes;
  95.     /**
  96.      * @ORM\OneToMany(targetEntity=Certification::class, mappedBy="profile", cascade={"persist"})
  97.      */
  98.     public $certifications;
  99.     /**
  100.      * @ORM\OneToMany(targetEntity=Candidature::class, mappedBy="profile")
  101.      */
  102.     public $candidatures;
  103.     /**
  104.      * @ORM\Column(type="boolean", nullable=true)
  105.      */
  106.     public $isIntercontrat;
  107.     /**
  108.      * @ORM\OneToMany(targetEntity=ProfileVisit::class, mappedBy="profile", orphanRemoval=true)
  109.      */
  110.     public $profileVisits;
  111.     /**
  112.      * @ORM\Column(type="string", length=150, nullable=true)
  113.      */
  114.     public $firstname;
  115.     /**
  116.      * @ORM\Column(type="string", length=50, nullable=true)
  117.      */
  118.     public $englishLevel;
  119.     /**
  120.      * @ORM\Column(type="string", length=50, nullable=true)
  121.      */
  122.     public $legalStatus;
  123.     /**
  124.      * @ORM\Column(type="string", length=20, nullable=true)
  125.      */
  126.     public $phone;
  127.     /**
  128.      * @ORM\Column(type="string", length=150, nullable=true)
  129.      */
  130.     public $url;
  131.     /**
  132.      * @ORM\Column(type="string", length=190, nullable=true)
  133.      */
  134.     public $cvname;
  135.     /**
  136.      * @ORM\Column(type="boolean", nullable=true)
  137.      */
  138.     public $isVisible;
  139.     /**
  140.      * @ORM\Column(type="boolean", nullable=true)
  141.      */
  142.     public $isHighlight;
  143.     /**
  144.      * @ORM\OneToMany(targetEntity=ProfileFavorite::class, mappedBy="profile")
  145.      */
  146.     private $profileFavorites;
  147.     /**
  148.      *
  149.      * @ORM\ManyToOne(targetEntity=User::class)
  150.      */
  151.     private $userRecruteur;
  152.     /**
  153.      *
  154.      * @ORM\Column(type="string", length=255, nullable=true)
  155.      */
  156.     private $cvOlderScan;
  157.     /**
  158.      * @ORM\Column(type="text", nullable=true)
  159.      */
  160.     public $cvText;
  161.     /**
  162.      * @ORM\Column(type="string", length=50, nullable=true)
  163.      */
  164.     private $typeSearch;
  165.     /**
  166.      * @ORM\Column(type="datetime", nullable=true)
  167.      */
  168.     private $birthday;
  169.     /**
  170.      * @ORM\Column(type="string", length=50, nullable=true)
  171.      */
  172.     private $nationality;
  173.     /**
  174.      * @ORM\Column(type="json", nullable=true)
  175.      */
  176.     private $nationalityMultiple;
  177.     /**
  178.      * @ORM\Column(type="string", length=50, nullable=true)
  179.      */
  180.     private $visaStatus;
  181.     /**
  182.      * @ORM\Column(type="string", length=50, nullable=true)
  183.      */
  184.     public $arabicLevel;
  185.     /**
  186.      * @ORM\Column(type="integer", nullable=true)
  187.      */
  188.     private $totalExp;
  189.     /**
  190.      * @ORM\Column(type="integer", nullable=true)
  191.      */
  192.     public $salaryPerMonth;
  193.     /**
  194.      * @ORM\Column(type="integer", nullable=true)
  195.      */
  196.     public $salaryPerHour;
  197.     /**
  198.      * @ORM\Column(type="boolean", nullable=true)
  199.      */
  200.     private $isInvisible;
  201.     /**
  202.      * @ORM\Column(type="integer", nullable=true)
  203.      */
  204.     private $civility;
  205.     /**
  206.      * @ORM\Column(type="string", length=150, nullable=true)
  207.      */
  208.     public $slug;
  209.     public function __construct()
  210.     {
  211.         $this->skills = new ArrayCollection();
  212.         $this->experiences = new ArrayCollection();
  213.         $this->diplomes = new ArrayCollection();
  214.         $this->certifications = new ArrayCollection();
  215.         $this->candidatures = new ArrayCollection();
  216.         $this->profileVisits = new ArrayCollection();
  217.         $this->profileFavorites = new ArrayCollection();
  218.         $this->typeSearch "Full-time";
  219.     }
  220.     //----------------------------------
  221.     public function getCivilityString(): string
  222.     {
  223.         if ($this->getUser()){
  224.             if ($this->getUser()->getType() == "freelance"){
  225.                 return $this->getUser()->getCivilityString();
  226.             }
  227.         }
  228.         return "";
  229.     }
  230.     public function getCurrentLocation(): ?string
  231.     {
  232.         return ($this->location == "United Arab Emirates") ? $this->location2 $this->location;
  233.     }
  234.     public function getSalaryPeerMonthText(){
  235.         if($this->salaryPerMonth){
  236.             return $this->salaryPerMonth.' AED';
  237.         }
  238.         return "";
  239.     }
  240.     public function getSalaryPeerHourText(){
  241.         if($this->salaryPerHour){
  242.             return $this->salaryPerHour.' AED';
  243.         }
  244.         return "";
  245.     }
  246.     public function updateSlug(){
  247.         $slugger = new AsciiSlugger();
  248.         $defaultNum 10000;
  249.         $numero $defaultNum $this->getId();
  250.         $slug strtolower($slugger->slug($numero.'-'.$this->getName()));
  251.         $this->setSlug($slug);
  252.     }
  253.     //----------------------------------
  254.     public function getId(): ?int
  255.     {
  256.         return $this->id;
  257.     }
  258.     public function setId(int $id): self
  259.     {
  260.         $this->id $id;
  261.         return $this;
  262.     }
  263.     public function getCost(): ?int
  264.     {
  265.         return $this->cost;
  266.     }
  267.     public function setCost(int $cost): self
  268.     {
  269.         $this->cost $cost;
  270.         return $this;
  271.     }
  272.     public function getCostType(): ?int
  273.     {
  274.         return $this->cost_type;
  275.     }
  276.     public function setCostType(int $cost_type): self
  277.     {
  278.         $this->cost_type $cost_type;
  279.         return $this;
  280.     }
  281.     public function getExperienceNumber(): ?string
  282.     {
  283.         return $this->experience_number;
  284.     }
  285.     public function setExperienceNumber(string $experience_number): self
  286.     {
  287.         $this->experience_number $experience_number;
  288.         return $this;
  289.     }
  290.     public function getProfileType(): ?int
  291.     {
  292.         return $this->profile_type;
  293.     }
  294.     public function setProfileType(int $profile_type): self
  295.     {
  296.         $this->profile_type $profile_type;
  297.         return $this;
  298.     }
  299.     public function getPhoto(): ?string
  300.     {
  301.         return $this->photo;
  302.     }
  303.     public function setPhoto(?string $photo): self
  304.     {
  305.         $this->photo $photo;
  306.         return $this;
  307.     }
  308.     public function getCvFile(): ?string
  309.     {
  310.         return $this->cv_file;
  311.     }
  312.     public function setCvFile(?string $cv_file): self
  313.     {
  314.         $this->cv_file $cv_file;
  315.         return $this;
  316.     }
  317.     public function getLocation(): ?string
  318.     {
  319.         return $this->location;
  320.     }
  321.     public function setLocation(string $location): self
  322.     {
  323.         $this->location $location;
  324.         return $this;
  325.     }
  326.     public function getMobility(): ?array
  327.     {
  328.         return $this->mobility;
  329.     }
  330.     public function setMobility(?array $mobility): self
  331.     {
  332.         $this->mobility $mobility;
  333.         return $this;
  334.     }
  335.     public function getDisponibility(): ?string
  336.     {
  337.         return $this->disponibility;
  338.     }
  339.     public function setDisponibility(string $disponibility): self
  340.     {
  341.         $this->disponibility $disponibility;
  342.         return $this;
  343.     }
  344.     public function getUser(): ?User
  345.     {
  346.         return $this->user;
  347.     }
  348.     public function setUser(?User $user): self
  349.     {
  350.         $this->user $user;
  351.         return $this;
  352.     }
  353.     public function getFullName(): ?string
  354.     {
  355.         return $this->firstname' ' $this->name;
  356.     }
  357.     public function isPrivate(): bool
  358.     {
  359.         return $this->profile_type === \App\Entity\Enum\Profile::PRIVATE;
  360.     }
  361.     public function isPublic(): bool
  362.     {
  363.         return $this->profile_type === \App\Entity\Enum\Profile::PUBLIC;
  364.     }
  365.     public function isHidden(): bool
  366.     {
  367.         return $this->profile_type === \App\Entity\Enum\Profile::HIDDEN;
  368.     }
  369.     public function getPublicName(): string
  370.     {
  371.         if ($this->isPrivate()) {
  372.             return $this->getFirstname()[0].'.';
  373.         }
  374.         return $this->getFullName();
  375.     }
  376.     public function getLinkedin(): ?string
  377.     {
  378.         return $this->linkedin;
  379.     }
  380.     public function setLinkedin(?string $linkedin): self
  381.     {
  382.         $this->linkedin $linkedin;
  383.         return $this;
  384.     }
  385.     public function getTitle(): ?string
  386.     {
  387.         return $this->title;
  388.     }
  389.     public function setTitle(string $title): self
  390.     {
  391.         $this->title $title;
  392.         return $this;
  393.     }
  394.     /**
  395.      * @return Collection|Skill[]
  396.      */
  397.     public function getSkills(): Collection
  398.     {
  399.         return $this->skills;
  400.     }
  401.     public function addSkill(Skill $skill): self
  402.     {
  403.         if (!$this->skills->contains($skill)) {
  404.             $this->skills->add($skill);
  405.             $skill->setProfile($this);
  406.         }
  407.         return $this;
  408.     }
  409.     public function removeSkill(Skill $skill): self
  410.     {
  411.         if ($this->skills->removeElement($skill)) {
  412.             // set the owning side to null (unless already changed)
  413.             if ($skill->getProfile() === $this) {
  414.                 $skill->setProfile(null);
  415.             }
  416.         }
  417.         return $this;
  418.     }
  419.     /**
  420.      * @return Collection|Experience[]
  421.      */
  422.     public function getExperiences(): Collection
  423.     {
  424.         return $this->experiences;
  425.     }
  426.     public function resetContent()
  427.     {
  428.         $this->experiences = new ArrayCollection();
  429.         $this->diplomes = new ArrayCollection();
  430.         $this->certifications = new ArrayCollection();
  431.         $this->skills = new ArrayCollection();
  432.     }
  433.     public function addExperience(Experience $experience): self
  434.     {
  435.         if (!$this->experiences->contains($experience)) {
  436.             $this->experiences->add($experience);
  437.             $experience->setProfile($this);
  438.         }
  439.         return $this;
  440.     }
  441.     public function removeExperience(Experience $experience): self
  442.     {
  443.         if ($this->experiences->removeElement($experience)) {
  444.             // set the owning side to null (unless already changed)
  445.             if ($experience->getProfile() === $this) {
  446.                 $experience->setProfile(null);
  447.             }
  448.         }
  449.         return $this;
  450.     }
  451.     /**
  452.      * @return Collection|Diplome[]
  453.      */
  454.     public function getDiplomes(): Collection
  455.     {
  456.         return $this->diplomes;
  457.     }
  458.     public function addDiplome(Diplome $diplome): self
  459.     {
  460.         if (!$this->diplomes->contains($diplome)) {
  461.             $this->diplomes->add($diplome);
  462.             $diplome->setProfile($this);
  463.         }
  464.         return $this;
  465.     }
  466.     public function removeDiplome(Diplome $diplome): self
  467.     {
  468.         if ($this->diplomes->removeElement($diplome)) {
  469.             // set the owning side to null (unless already changed)
  470.             if ($diplome->getProfile() === $this) {
  471.                 $diplome->setProfile(null);
  472.             }
  473.         }
  474.         return $this;
  475.     }
  476.     /**
  477.      * @return Collection|Certification[]
  478.      */
  479.     public function getCertifications(): Collection
  480.     {
  481.         return $this->certifications;
  482.     }
  483.     public function addCertification(Certification $certification): self
  484.     {
  485.         if (!$this->certifications->contains($certification)) {
  486.             $this->certifications[] = $certification;
  487.             $certification->setProfile($this);
  488.         }
  489.         return $this;
  490.     }
  491.     public function removeCertification(Certification $certification): self
  492.     {
  493.         if ($this->certifications->removeElement($certification)) {
  494.             // set the owning side to null (unless already changed)
  495.             if ($certification->getProfile() === $this) {
  496.                 $certification->setProfile(null);
  497.             }
  498.         }
  499.         return $this;
  500.     }
  501.     /**
  502.      * @return Collection|Candidature[]
  503.      */
  504.     public function getCandidatures(): Collection
  505.     {
  506.         return $this->candidatures;
  507.     }
  508.     public function addCandidature(Candidature $candidature): self
  509.     {
  510.         if (!$this->candidatures->contains($candidature)) {
  511.             $this->candidatures->add($candidature);
  512.             $candidature->setProfile($this);
  513.         }
  514.         return $this;
  515.     }
  516.     public function removeCandidature(Candidature $candidature): self
  517.     {
  518.         if ($this->candidatures->removeElement($candidature)) {
  519.             // set the owning side to null (unless already changed)
  520.             if ($candidature->getProfile() === $this) {
  521.                 $candidature->setProfile(null);
  522.             }
  523.         }
  524.         return $this;
  525.     }
  526.     public function getIsIntercontrat(): ?bool
  527.     {
  528.         return $this->isIntercontrat;
  529.     }
  530.     public function setIsIntercontrat(?bool $isIntercontrat): self
  531.     {
  532.         $this->isIntercontrat $isIntercontrat;
  533.         return $this;
  534.     }
  535.     /**
  536.      * @return Collection|ProfileVisit[]
  537.      */
  538.     public function getProfileVisits(): Collection
  539.     {
  540.         return $this->profileVisits;
  541.     }
  542.     public function addProfileVisit(ProfileVisit $profileVisit): self
  543.     {
  544.         if (!$this->profileVisits->contains($profileVisit)) {
  545.             $this->profileVisits[] = $profileVisit;
  546.             $profileVisit->setProfile($this);
  547.         }
  548.         return $this;
  549.     }
  550.     public function removeProfileVisit(ProfileVisit $profileVisit): self
  551.     {
  552.         if ($this->profileVisits->removeElement($profileVisit)) {
  553.             // set the owning side to null (unless already changed)
  554.             if ($profileVisit->getProfile() === $this) {
  555.                 $profileVisit->setProfile(null);
  556.             }
  557.         }
  558.         return $this;
  559.     }
  560.     public function getEnglishLevel(): ?string
  561.     {
  562.         return $this->englishLevel;
  563.     }
  564.     public function setEnglishLevel(string $englishLevel): self
  565.     {
  566.         $this->englishLevel $englishLevel;
  567.         return $this;
  568.     }
  569.     public function getLegalStatus(): ?string
  570.     {
  571.         return $this->legalStatus;
  572.     }
  573.     public function setLegalStatus(string $legalStatus): self
  574.     {
  575.         $this->legalStatus $legalStatus;
  576.         return $this;
  577.     }
  578.     public function getUrl(): ?string
  579.     {
  580.         return $this->url;
  581.     }
  582.     public function setUrl(?string $url): self
  583.     {
  584.         $this->url $url;
  585.         return $this;
  586.     }
  587.     public function normalize(NormalizerInterface $normalizerstring $format null, array $context = [])
  588.     {
  589.         $experiences = [];
  590.         $formations = [];
  591.         $certifications = [];
  592.         $skills = [];
  593.         $experienceList $this->getExperiences();
  594.         $formationList $this->getDiplomes();
  595.         $certificationList $this->getCertifications();
  596.         $skillList $this->getSkills();
  597.         foreach ($experienceList as $experience) {
  598.             $experiences[] = [
  599.                 'title' => $experience->getTitle(),
  600.                 'environnement' => $experience->getEnvironment(),
  601.                 'missions' => $experience->getMissions(),
  602.                 'objectif' => $experience->getObjectif(),
  603.             ];
  604.         }
  605.         foreach ($formationList as $formation) {
  606.             $formations[] = [
  607.                 'title' => $formation->getTitle(),
  608.                 'description' => $formation->getDescription(),
  609.             ];
  610.         }
  611.         foreach ($certificationList as $certification) {
  612.             $certifications[] = $certification->getTitle();
  613.         }
  614.         foreach ($skillList as $skill) {
  615.             $skills[] = [
  616.                 'name' => $skill->getName(),
  617.                 'level' => $skill->getLevel(),
  618.             ];
  619.         }
  620.         return [
  621.             'title' => $this->getTitle(),
  622.             'experiences' => $experiences,
  623.             'formations' => $formations,
  624.             'certifications' => $certifications,
  625.             'skills' => $skills,
  626.             'cost' => $this->getCost(),
  627.             'category' => $this->getIsIntercontrat() ? 'intercontrat' 'profile',
  628.             'mobility' => $this->getMobility(),
  629.             'disponibility' => $this->getDisponibility(),
  630.             'visible' => $this->isVisible ?? false,
  631.             'highlight' => $this->isHighlight ?? false,
  632.             'description' => $this->getAbout(),
  633.             'identification' => $this->getId(),
  634.         ];
  635.     }
  636.     public function getCvname(): ?string
  637.     {
  638.         return $this->cvname;
  639.     }
  640.     public function setCvname(?string $cvname): self
  641.     {
  642.         $this->cvname $cvname;
  643.         return $this;
  644.     }
  645.     public function getIsVisible(): ?bool
  646.     {
  647.         return $this->isVisible;
  648.     }
  649.     public function setIsVisible(?bool $isVisible): self
  650.     {
  651.         $this->isVisible $isVisible;
  652.         return $this;
  653.     }
  654.     public function getIsHighlight(): ?bool
  655.     {
  656.         return $this->isHighlight;
  657.     }
  658.     public function setIsHighlight(?bool $isHighlight): self
  659.     {
  660.         $this->isHighlight $isHighlight;
  661.         return $this;
  662.     }
  663.     /**
  664.      * @return Collection<int, ProfileFavorite>
  665.      */
  666.     public function getProfileFavorites(): Collection
  667.     {
  668.         return $this->profileFavorites;
  669.     }
  670.     public function addProfileFavorite(ProfileFavorite $profileFavorite): self
  671.     {
  672.         if (!$this->profileFavorites->contains($profileFavorite)) {
  673.             $this->profileFavorites[] = $profileFavorite;
  674.             $profileFavorite->setProfile($this);
  675.         }
  676.         return $this;
  677.     }
  678.     public function removeProfileFavorite(ProfileFavorite $profileFavorite): self
  679.     {
  680.         if ($this->profileFavorites->removeElement($profileFavorite)) {
  681.             // set the owning side to null (unless already changed)
  682.             if ($profileFavorite->getProfile() === $this) {
  683.                 $profileFavorite->setProfile(null);
  684.             }
  685.         }
  686.         return $this;
  687.     }
  688.     public function getAbout(): ?string
  689.     {
  690.         return $this->about;
  691.     }
  692.     public function setAbout(?string $about): self
  693.     {
  694.         $this->about $about;
  695.         return $this;
  696.     }
  697.     public function isIsIntercontrat(): ?bool
  698.     {
  699.         return $this->isIntercontrat;
  700.     }
  701.     public function getPhone(): ?string
  702.     {
  703.         return $this->phone;
  704.     }
  705.     public function setPhone(?string $phone): self
  706.     {
  707.         $this->phone $phone;
  708.         return $this;
  709.     }
  710.     public function isIsVisible(): ?bool
  711.     {
  712.         return $this->isVisible;
  713.     }
  714.     public function isIsHighlight(): ?bool
  715.     {
  716.         return $this->isHighlight;
  717.     }
  718.     public function getUserRecruteur(): ?User
  719.     {
  720.         return $this->userRecruteur;
  721.     }
  722.     public function setUserRecruteur(?User $userRecruteur): self
  723.     {
  724.         $this->userRecruteur $userRecruteur;
  725.         return  $this;
  726.     }
  727.     public function getCvOlderScan(): ?string
  728.     {
  729.         return $this->cvOlderScan;
  730.     }
  731.     public function setCvOlderScan(?string $cvOlderScan): self
  732.     {
  733.         $this->cvOlderScan $cvOlderScan;
  734.         return $this;
  735.     }
  736.     public function getCvText(): ?string
  737.     {
  738.         return $this->cvText;
  739.     }
  740.     public function setCvText(?string $cvText): self
  741.     {
  742.         $this->cvText $cvText;
  743.         return $this;
  744.     }
  745.     public function getTypeSearch(): ?string
  746.     {
  747.         return $this->typeSearch;
  748.     }
  749.     public function setTypeSearch(?string $typeSearch): self
  750.     {
  751.         $this->typeSearch $typeSearch;
  752.         return $this;
  753.     }
  754.     public function getBirthday(): ?\DateTimeInterface
  755.     {
  756.         return $this->birthday;
  757.     }
  758.     public function setBirthday(?\DateTimeInterface $birthday): self
  759.     {
  760.         $this->birthday $birthday;
  761.         return $this;
  762.     }
  763.     public function getNationality(): ?string
  764.     {
  765.         return $this->nationality;
  766.     }
  767.     public function setNationality(?string $nationality): self
  768.     {
  769.         $this->nationality $nationality;
  770.         return $this;
  771.     }
  772.     public function getVisaStatus(): ?string
  773.     {
  774.         return $this->visaStatus;
  775.     }
  776.     public function setVisaStatus(?string $visaStatus): self
  777.     {
  778.         $this->visaStatus $visaStatus;
  779.         return $this;
  780.     }
  781.     public function getArabicLevel(): ?string
  782.     {
  783.         return $this->arabicLevel;
  784.     }
  785.     public function setArabicLevel(?string $arabicLevel): self
  786.     {
  787.         $this->arabicLevel $arabicLevel;
  788.         return $this;
  789.     }
  790.     public function getTotalExp(): ?int
  791.     {
  792.         return $this->totalExp;
  793.     }
  794.     public function setTotalExp(?int $totalExp): self
  795.     {
  796.         $this->totalExp $totalExp;
  797.         return $this;
  798.     }
  799.     public function getSalaryPerMonth(): ?int
  800.     {
  801.         return $this->salaryPerMonth;
  802.     }
  803.     public function setSalaryPerMonth(?int $salaryPerMonth): self
  804.     {
  805.         $this->salaryPerMonth $salaryPerMonth;
  806.         return $this;
  807.     }
  808.     public function getSalaryPerHour(): ?int
  809.     {
  810.         return $this->salaryPerHour;
  811.     }
  812.     public function setSalaryPerHour(?int $salaryPerHour): self
  813.     {
  814.         $this->salaryPerHour $salaryPerHour;
  815.         return $this;
  816.     }
  817.     public function isIsInvisible(): ?bool
  818.     {
  819.         if ($this->isInvisible == true){
  820.             return true;
  821.         }
  822.         return false;
  823.     }
  824.     public function setIsInvisible(?bool $isInvisible): self
  825.     {
  826.         $this->isInvisible $isInvisible;
  827.         return $this;
  828.     }
  829.     public function getLocation2(): ?string
  830.     {
  831.         return $this->location2;
  832.     }
  833.     public function setLocation2(?string $location2): self
  834.     {
  835.         $this->location2 $location2;
  836.         return $this;
  837.     }
  838.     public function getName(): ?string
  839.     {
  840.         return $this->name;
  841.     }
  842.     public function setName(?string $name): self
  843.     {
  844.         $this->name $name;
  845.         return $this;
  846.     }
  847.     public function getFirstname(): ?string
  848.     {
  849.         return $this->firstname;
  850.     }
  851.     public function setFirstname(?string $firstname): self
  852.     {
  853.         $this->firstname $firstname;
  854.         return $this;
  855.     }
  856.     public function getCivility(): ?int
  857.     {
  858.         return $this->civility;
  859.     }
  860.     public function setCivility(?int $civility): self
  861.     {
  862.         $this->civility $civility;
  863.         return $this;
  864.     }
  865.     public function getNationalityMultiple(): ?array
  866.     {
  867.         return $this->nationalityMultiple;
  868.     }
  869.     public function setNationalityMultiple(?array $nationalityMultiple): self
  870.     {
  871.         $this->nationalityMultiple $nationalityMultiple;
  872.         return $this;
  873.     }
  874.     public function getSlug(): ?string
  875.     {
  876.         return $this->slug;
  877.     }
  878.     public function setSlug(?string $slug): self
  879.     {
  880.         $this->slug $slug;
  881.         return $this;
  882.     }
  883. }