src/Entity/CompanyProfile.php line 10

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use App\BackendBundle\Interfaces\ProfileInterface;
  6. use App\Entity\CompanyLocation;
  7. class CompanyProfile implements ProfileInterface {
  8.     /**
  9.      * @var integer
  10.      */
  11.     private $id;
  12.     /**
  13.      * @var uuid
  14.      */
  15.     private $uuid;
  16.     /**
  17.      * @var \App\Entity\User
  18.      */
  19.     private $user;
  20.     /**
  21.      * @var string
  22.      */
  23.     private $name;
  24.     /**
  25.      * @var boolean
  26.      */
  27.     private $isFlexiProfile false;
  28.     /**
  29.      * @var string
  30.      */
  31.     private $description;
  32.     /**
  33.      * @var string
  34.      */
  35.     private $trainingInformation;
  36.     /**
  37.      * @var string
  38.      */
  39.     private $url;
  40.     /**
  41.      * @var integer
  42.      */
  43.     private $founded;
  44.     /**
  45.      * @var integer
  46.      */
  47.     private $noOfTrainees;
  48.     /**
  49.      * @var integer
  50.      */
  51.     private $clickCount 0;
  52.     /**
  53.      * @var \App\Entity\Communication
  54.      */
  55.     private $communication;
  56.     /**
  57.      * @var integer
  58.      */
  59.     private $logoStyle;    
  60.     
  61.     /**
  62.      * @var \App\Entity\Media
  63.      */
  64.     private $companyProfilePicture;
  65.     /**
  66.      * @var \App\Entity\Media
  67.      */
  68.     private $headerPicture;
  69.     /**
  70.      * @var \App\Entity\Gallery
  71.      */
  72.     private $gallery;
  73.     /**
  74.      * @var \App\Entity\Gallery
  75.      */
  76.     private $videos;
  77.     /**
  78.      * @var \App\Entity\Gallery
  79.      */
  80.     private $documents;
  81.     /**
  82.      * @var \Doctrine\Common\Collections\Collection
  83.      */
  84.     private $contacts;
  85.     /**
  86.      * @var \Doctrine\Common\Collections\Collection
  87.      */
  88.     private $locations;
  89.     /**
  90.      * @var \App\Entity\CompanySize
  91.      */
  92.     private $companySize;
  93.     /**
  94.      * @var \Doctrine\Common\Collections\Collection
  95.      */
  96.     private $certificates;
  97.     /**
  98.      * @var \Doctrine\Common\Collections\Collection
  99.      */
  100.     private $jobs;
  101.     /**
  102.      * @var \Doctrine\Common\Collections\Collection
  103.      */
  104.     private $sectors;
  105.     /**
  106.      * @var \Doctrine\Common\Collections\Collection
  107.      */
  108.     private $searchTags;
  109.     /**
  110.      * @var \Doctrine\Common\Collections\Collection
  111.      */
  112.     private $companyBenefits;
  113.     /**
  114.      * @var string|null
  115.      */
  116.     private $certificateInformation;
  117.     /**
  118.      * @var string|null
  119.      */
  120.     private $wknr;
  121.     /**
  122.      * @var \Doctrine\Common\Collections\Collection
  123.      */
  124.     private $companyProfileMappings;
  125.     /**
  126.      * @var \Doctrine\Common\Collections\Collection
  127.      */
  128.     private $jobOffers;
  129.     /**
  130.      * @var bool
  131.      */
  132.     private $isVisible true;
  133.     /**
  134.      * @var \Doctrine\Common\Collections\Collection
  135.      */
  136.     private $interestFields;
  137.     /**
  138.      * @var \App\Entity\ProfileLink
  139.      */
  140.     private $profileLink;
  141.     /**
  142.      * @var \Doctrine\Common\Collections\Collection
  143.      */
  144.     private $offers;
  145.     /**
  146.      * @var \Doctrine\Common\Collections\Collection
  147.      */
  148.     private $gameQuizzes;
  149.     /**
  150.      * Constructor
  151.      */
  152.     public function __construct() {
  153.         $this->certificates = new ArrayCollection();
  154.         $this->companyBenefits = new ArrayCollection();
  155.         $this->companyProfileMappings = new ArrayCollection();
  156.         $this->jobOffers = new ArrayCollection();
  157.         $this->contacts = new ArrayCollection();
  158.         $this->gameQuizzes = new ArrayCollection();
  159.         $this->interestFields = new ArrayCollection();
  160.         $this->jobs = new ArrayCollection();
  161.         $this->locations = new ArrayCollection();
  162.         $this->offers = new ArrayCollection();
  163.         $this->sectors = new ArrayCollection();
  164.         $this->searchTags = new ArrayCollection();
  165.     }
  166.     /**
  167.      * Get id
  168.      *
  169.      * @return integer
  170.      */
  171.     public function getId() {
  172.         return $this->id;
  173.     }
  174.     /**
  175.      * Set uuid
  176.      *
  177.      * @param uuid $uuid
  178.      *
  179.      * @return CompanyProfile
  180.      */
  181.     public function setUuid($uuid) {
  182.         $this->uuid $uuid;
  183.         return $this;
  184.     }
  185.     /**
  186.      * Get uuid
  187.      *
  188.      * @return uuid
  189.      */
  190.     public function getUuid() {
  191.         return $this->uuid;
  192.     }
  193.     /**
  194.      * Set name
  195.      *
  196.      * @param string $name
  197.      *
  198.      * @return CompanyProfile
  199.      */
  200.     public function setName($name) {
  201.         $this->name $name;
  202.         return $this;
  203.     }
  204.     /**
  205.      * Get name
  206.      *
  207.      * @return string
  208.      */
  209.     public function getName() {
  210.         return $this->name;
  211.     }
  212.     /**
  213.      * Set isFlexiProfile
  214.      *
  215.      * @param boolean $isFlexiProfile
  216.      *
  217.      * @return CompanyProfile
  218.      */
  219.     public function setIsFlexiProfile($isFlexiProfile) {
  220.         $this->isFlexiProfile $isFlexiProfile;
  221.         return $this;
  222.     }
  223.     /**
  224.      * Get isFlexiProfile
  225.      *
  226.      * @return boolean
  227.      */
  228.     public function getIsFlexiProfile() {
  229.         return $this->isFlexiProfile;
  230.     }
  231.     /**
  232.      * Set description
  233.      *
  234.      * @param string $description
  235.      *
  236.      * @return CompanyProfile
  237.      */
  238.     public function setDescription($description) {
  239.         $this->description $description;
  240.         return $this;
  241.     }
  242.     /**
  243.      * Get description
  244.      *
  245.      * @return string
  246.      */
  247.     public function getDescription() {
  248.         return $this->description;
  249.     }
  250.     /**
  251.      * Set trainingInformation
  252.      *
  253.      * @param string $trainingInformation
  254.      *
  255.      * @return CompanyProfile
  256.      */
  257.     public function setTrainingInformation($trainingInformation) {
  258.         $this->trainingInformation $trainingInformation;
  259.         return $this;
  260.     }
  261.     /**
  262.      * Get trainingInformation
  263.      *
  264.      * @return string
  265.      */
  266.     public function getTrainingInformation() {
  267.         return $this->trainingInformation;
  268.     }
  269.     /**
  270.      * Set companyBenefits
  271.      *
  272.      * @param array $companyBenefits
  273.      *
  274.      * @return CompanyProfile
  275.      */
  276.     public function setCompanyBenefits($companyBenefits) {
  277.         $this->companyBenefits $companyBenefits;
  278.         return $this;
  279.     }
  280.     /**
  281.      * Set url
  282.      *
  283.      * @param string $url
  284.      *
  285.      * @return CompanyProfile
  286.      */
  287.     public function setUrl($url) {
  288.         $this->url $url;
  289.         return $this;
  290.     }
  291.     /**
  292.      * Get url
  293.      *
  294.      * @return string
  295.      */
  296.     public function getUrl() {
  297.         return $this->url;
  298.     }
  299.     /**
  300.      * Set founded
  301.      *
  302.      * @param integer $founded
  303.      *
  304.      * @return CompanyProfile
  305.      */
  306.     public function setFounded($founded) {
  307.         $this->founded $founded;
  308.         return $this;
  309.     }
  310.     /**
  311.      * Get founded
  312.      *
  313.      * @return integer
  314.      */
  315.     public function getFounded() {
  316.         return $this->founded;
  317.     }
  318.     /**
  319.      * Set noOfTrainees
  320.      *
  321.      * @param integer $noOfTrainees
  322.      *
  323.      * @return CompanyProfile
  324.      */
  325.     public function setNoOfTrainees($noOfTrainees) {
  326.         $this->noOfTrainees $noOfTrainees;
  327.         return $this;
  328.     }
  329.     /**
  330.      * Get noOfTrainees
  331.      *
  332.      * @return integer
  333.      */
  334.     public function getNoOfTrainees() {
  335.         return $this->noOfTrainees;
  336.     }
  337.     /**
  338.      * Set clickCount
  339.      *
  340.      * @param integer $clickCount
  341.      *
  342.      * @return CompanyProfile
  343.      */
  344.     public function setClickCount($clickCount) {
  345.         $this->clickCount $clickCount;
  346.         return $this;
  347.     }
  348.     /**
  349.      * Get clickCount
  350.      *
  351.      * @return integer
  352.      */
  353.     public function getClickCount() {
  354.         return $this->clickCount;
  355.     }
  356.     /**
  357.      * Set communication
  358.      *
  359.      * @param \App\Entity\Communication $communication
  360.      *
  361.      * @return CompanyProfile
  362.      */
  363.     public function setCommunication(\App\Entity\Communication $communication null) {
  364.         $this->communication $communication;
  365.         return $this;
  366.     }
  367.     /**
  368.      * Get communication
  369.      *
  370.      * @return \App\Entity\Communication
  371.      */
  372.     public function getCommunication() {
  373.         return $this->communication;
  374.     }
  375.     public function getLogoStyle() {
  376.         return $this->logoStyle;
  377.     }
  378.     public function setLogoStyle($logoStyle) {
  379.         $this->logoStyle $logoStyle;
  380.     }
  381.     
  382.     /**
  383.      * Set companyProfilePicture
  384.      *
  385.      * @param \App\Entity\Media $companyProfilePicture
  386.      *
  387.      * @return CompanyProfile
  388.      */
  389.     public function setCompanyProfilePicture(\App\Entity\Media $companyProfilePicture null) {
  390.         $this->companyProfilePicture $companyProfilePicture;
  391.         return $this;
  392.     }
  393.     /**
  394.      * Get companyProfilePicture
  395.      *
  396.      * @return \App\Entity\Media
  397.      */
  398.     public function getCompanyProfilePicture() {
  399.         return $this->companyProfilePicture;
  400.     }
  401.     /**
  402.      * Set headerPicture
  403.      *
  404.      * @param \App\Entity\Media $headerPicture
  405.      *
  406.      * @return CompanyProfile
  407.      */
  408.     public function setHeaderPicture(\App\Entity\Media $headerPicture null) {
  409.         $this->headerPicture $headerPicture;
  410.         return $this;
  411.     }
  412.     /**
  413.      * Get headerPicture
  414.      *
  415.      * @return \App\Entity\Media
  416.      */
  417.     public function getHeaderPicture() {
  418.         return $this->headerPicture;
  419.     }
  420.     /**
  421.      * Set gallery
  422.      *
  423.      * @param \App\Entity\Gallery $gallery
  424.      *
  425.      * @return CompanyProfile
  426.      */
  427.     public function setGallery(\App\Entity\Gallery $gallery null) {
  428.         $this->gallery $gallery;
  429.         return $this;
  430.     }
  431.     /**
  432.      * Get gallery
  433.      *
  434.      * @return \App\Entity\Gallery
  435.      */
  436.     public function getGallery() {
  437.         return $this->gallery;
  438.     }
  439.     /**
  440.      * Set videos
  441.      *
  442.      * @param \App\Entity\Gallery $videos
  443.      *
  444.      * @return CompanyProfile
  445.      */
  446.     public function setVideos(\App\Entity\Gallery $videos null) {
  447.         $this->videos $videos;
  448.         return $this;
  449.     }
  450.     /**
  451.      * Get videos
  452.      *
  453.      * @return \App\Entity\Gallery
  454.      */
  455.     public function getVideos() {
  456.         return $this->videos;
  457.     }
  458.     /**
  459.      * Set documents
  460.      *
  461.      * @param \App\Entity\Gallery $documents
  462.      *
  463.      * @return CompanyProfile
  464.      */
  465.     public function setDocuments(\App\Entity\Gallery $documents null) {
  466.         $this->documents $documents;
  467.         return $this;
  468.     }
  469.     /**
  470.      * Get documents
  471.      *
  472.      * @return \App\Entity\Gallery
  473.      */
  474.     public function getDocuments() {
  475.         return $this->documents;
  476.     }
  477.     /**
  478.      * Add location
  479.      *
  480.      * @param \App\Entity\CompanyLocation $location
  481.      *
  482.      * @return CompanyProfile
  483.      */
  484.     public function addLocation(\App\Entity\CompanyLocation $location) {
  485.         $this->locations[] = $location;
  486.         return $this;
  487.     }
  488.     /**
  489.      * Remove location
  490.      *
  491.      * @param \App\Entity\CompanyLocation $location
  492.      */
  493.     public function removeLocation(\App\Entity\CompanyLocation $location) {
  494.         $this->locations->removeElement($location);
  495.     }
  496.     /**
  497.      * Get locations
  498.      *
  499.      * @return \Doctrine\Common\Collections\Collection
  500.      */
  501.     public function getLocations() {
  502.         return $this->locations;
  503.     }
  504.     /**
  505.      * Set companySize
  506.      *
  507.      * @param \App\Entity\CompanySize $companySize
  508.      *
  509.      * @return CompanyProfile
  510.      */
  511.     public function setCompanySize(\App\Entity\CompanySize $companySize null) {
  512.         $this->companySize $companySize;
  513.         return $this;
  514.     }
  515.     /**
  516.      * Get companySize
  517.      *
  518.      * @return \App\Entity\CompanySize
  519.      */
  520.     public function getCompanySize() {
  521.         return $this->companySize;
  522.     }
  523.     /**
  524.      * Add certificate
  525.      *
  526.      * @param \App\Entity\CompanyCertificate $certificate
  527.      *
  528.      * @return CompanyProfile
  529.      */
  530.     public function addCertificate(\App\Entity\CompanyCertificate $certificate) {
  531.         $this->certificates[] = $certificate;
  532.         return $this;
  533.     }
  534.     /**
  535.      * Remove certificate
  536.      *
  537.      * @param \App\Entity\CompanyCertificate $certificate
  538.      */
  539.     public function removeCertificate(\App\Entity\CompanyCertificate $certificate) {
  540.         $this->certificates->removeElement($certificate);
  541.     }
  542.     /**
  543.      * Get certificates
  544.      *
  545.      * @return \Doctrine\Common\Collections\Collection
  546.      */
  547.     public function getCertificates() {
  548.         return $this->certificates;
  549.     }
  550.     /**
  551.      * Add job
  552.      *
  553.      * @param \App\Entity\Job $job
  554.      *
  555.      * @return CompanyProfile
  556.      */
  557.     public function addJob(\App\Entity\Job $job) {
  558.         $this->jobs[] = $job;
  559.         return $this;
  560.     }
  561.     /**
  562.      * Remove job
  563.      *
  564.      * @param \App\Entity\Job $job
  565.      */
  566.     public function removeJob(\App\Entity\Job $job) {
  567.         $this->jobs->removeElement($job);
  568.     }
  569.     /**
  570.      * Get jobs
  571.      *
  572.      * @return \Doctrine\Common\Collections\Collection
  573.      */
  574.     public function getJobs() {
  575.         return $this->jobs;
  576.     }
  577.     /**
  578.      * Add sector
  579.      *
  580.      * @param \App\Entity\JobSector $sector
  581.      *
  582.      * @return CompanyProfile
  583.      */
  584.     public function addSector(\App\Entity\JobSector $sector) {
  585.         $this->sectors[] = $sector;
  586.         return $this;
  587.     }
  588.     /**
  589.      * Remove sector
  590.      *
  591.      * @param \App\Entity\JobSector $sector
  592.      */
  593.     public function removeSector(\App\Entity\JobSector $sector) {
  594.         $this->sectors->removeElement($sector);
  595.     }
  596.     /**
  597.      * Get sectors
  598.      *
  599.      * @return \Doctrine\Common\Collections\Collection
  600.      */
  601.     public function getSectors() {
  602.         return $this->sectors;
  603.     }
  604.     /**
  605.      * Add searchTag.
  606.      *
  607.      * @param \App\Entity\SearchTag $searchTag
  608.      *
  609.      * @return CompanyProfile
  610.      */
  611.     public function addSearchTag(\App\Entity\SearchTag $searchTag) {
  612.         $this->searchTags[] = $searchTag;
  613.         return $this;
  614.     }
  615.     /**
  616.      * Remove searchTag.
  617.      *
  618.      * @param \App\Entity\SearchTag $searchTag
  619.      *
  620.      * @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
  621.      */
  622.     public function removeSearchTag(\App\Entity\SearchTag $searchTag) {
  623.         return $this->searchTags->removeElement($searchTag);
  624.     }
  625.     /**
  626.      * Get searchTags.
  627.      *
  628.      * @return \Doctrine\Common\Collections\Collection
  629.      */
  630.     public function getSearchTags() {
  631.         return $this->searchTags;
  632.     }
  633.     /**
  634.      * Add companyBenefit.
  635.      *
  636.      * @param \App\Entity\CompanyBenefit $companyBenefit
  637.      *
  638.      * @return CompanyProfile
  639.      */
  640.     public function addCompanyBenefit(\App\Entity\CompanyBenefit $companyBenefit) {
  641.         $this->companyBenefits[] = $companyBenefit;
  642.         return $this;
  643.     }
  644.     /**
  645.      * Remove companyBenefit.
  646.      *
  647.      * @param \App\Entity\CompanyBenefit $companyBenefit
  648.      *
  649.      * @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
  650.      */
  651.     public function removeCompanyBenefit(\App\Entity\CompanyBenefit $companyBenefit) {
  652.         return $this->companyBenefits->removeElement($companyBenefit);
  653.     }
  654.     /**
  655.      * Get companyBenefits.
  656.      *
  657.      * @return \Doctrine\Common\Collections\Collection
  658.      */
  659.     public function getCompanyBenefits() {
  660.         return $this->companyBenefits;
  661.     }
  662.     /**
  663.      * Set certificateInformation.
  664.      *
  665.      * @param string|null $certificateInformation
  666.      *
  667.      * @return CompanyProfile
  668.      */
  669.     public function setCertificateInformation($certificateInformation null) {
  670.         $this->certificateInformation $certificateInformation;
  671.         return $this;
  672.     }
  673.     /**
  674.      * Get certificateInformation.
  675.      *
  676.      * @return string|null
  677.      */
  678.     public function getCertificateInformation() {
  679.         return $this->certificateInformation;
  680.     }
  681.     /**
  682.      * Set user.
  683.      *
  684.      * @param \App\Entity\User|null $user
  685.      *
  686.      * @return CompanyProfile
  687.      */
  688.     public function setUser(\App\Entity\User $user null) {
  689.         $this->user $user;
  690.         return $this;
  691.     }
  692.     /**
  693.      * Get user.
  694.      *
  695.      * @return \App\Entity\User|null
  696.      */
  697.     public function getUser() {
  698.         return $this->user;
  699.     }
  700.     /**
  701.      * Set wknr.
  702.      *
  703.      * @param string|null $wknr
  704.      *
  705.      * @return CompanyProfile
  706.      */
  707.     public function setWknr($wknr null) {
  708.         $this->wknr $wknr;
  709.         return $this;
  710.     }
  711.     /**
  712.      * Add companyProfileMapping.
  713.      *
  714.      * @param \App\Entity\CompanyProfileMapping $companyProfileMapping
  715.      *
  716.      * @return CompanyProfile
  717.      */
  718.     public function addCompanyProfileMapping(\App\Entity\CompanyProfileMapping $companyProfileMapping) {
  719.         $this->companyProfileMappings[] = $companyProfileMapping;
  720.         return $this;
  721.     }
  722.     /**
  723.      * Remove companyProfileMapping.
  724.      *
  725.      * @param \App\Entity\CompanyProfileMapping $companyProfileMapping
  726.      *
  727.      * @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
  728.      */
  729.     public function removeCompanyProfileMapping(\App\Entity\CompanyProfileMapping $companyProfileMapping) {
  730.         return $this->companyProfileMappings->removeElement($companyProfileMapping);
  731.     }
  732.     /**
  733.      * Get companyProfileMappings.
  734.      *
  735.      * @return \Doctrine\Common\Collections\Collection
  736.      */
  737.     public function getCompanyProfileMappings() {
  738.         return $this->companyProfileMappings;
  739.     }
  740.     /**
  741.      * Add jobOffer.
  742.      *
  743.      * @param \App\Entity\JobMarket $jobOffer
  744.      *
  745.      * @return CompanyProfile
  746.      */
  747.     public function addJobOffer(\App\Entity\JobMarket $jobOffer) {
  748.         $this->jobOffers[] = $jobOffer;
  749.         return $this;
  750.     }
  751.     /**
  752.      * Remove jobOffer.
  753.      *
  754.      * @param \App\Entity\JobMarket $jobOffer
  755.      *
  756.      * @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
  757.      */
  758.     public function removeJobOffer(\App\Entity\JobMarket $jobOffer) {
  759.         return $this->jobOffers->removeElement($jobOffer);
  760.     }
  761.     /**
  762.      * Get jobOffers.
  763.      *
  764.      * @return \Doctrine\Common\Collections\Collection
  765.      */
  766.     public function getJobOffers() {
  767.         return $this->jobOffers;
  768.     }
  769.     /**
  770.      * Get wknr.
  771.      *
  772.      * @return string|null
  773.      */
  774.     public function getWknr() {
  775.         return $this->wknr;
  776.     }
  777.     /* !!! must correspond to id in table profile_type !!! */
  778.     public function getProfileTypeID() {
  779.         return 1;
  780.     }
  781.     public function hasAddressLatLon() {
  782.         /* @var $location CompanyLocation */
  783.         foreach ($this->locations as $location) {
  784.             if (!empty($location->getAddress()) && !empty($location->getAddress()->getAddressLatLon())) {
  785.                 return true;
  786.             }
  787.         }
  788.         return false;
  789.     }
  790.     /**
  791.      * Set isVisible.
  792.      *
  793.      * @param bool $isVisible
  794.      *
  795.      * @return CompanyProfile
  796.      */
  797.     public function setIsVisible($isVisible) {
  798.         $this->isVisible $isVisible;
  799.         return $this;
  800.     }
  801.     /**
  802.      * Get isVisible.
  803.      *
  804.      * @return bool
  805.      */
  806.     public function getIsVisible() {
  807.         return $this->isVisible;
  808.     }
  809.     public function getIsComplete() {
  810.         if (empty($this->companyProfilePicture)) {
  811.             return false;
  812.         }
  813.         if (strlen($this->description) < 100) {
  814.             return false;
  815.         }
  816.         return true;
  817.     }
  818.     public function getShortName() {
  819.         if (strlen($this->name) < 25) {
  820.             return $this->name;
  821.         }
  822.         $namePart substr($this->name025);
  823.         return "$namePart...";
  824.     }
  825.     /**
  826.      * @var \App\Entity\ContactGallery
  827.      */
  828.     private $contactGallery;
  829.     /**
  830.      * Set contactGallery.
  831.      *
  832.      * @param \App\Entity\ContactGallery|null $contactGallery
  833.      *
  834.      * @return CompanyProfile
  835.      */
  836.     public function setContactGallery(\App\Entity\ContactGallery $contactGallery null) {
  837.         $this->contactGallery $contactGallery;
  838.         return $this;
  839.     }
  840.     /**
  841.      * Get contactGallery.
  842.      *
  843.      * @return \App\Entity\ContactGallery|null
  844.      */
  845.     public function getContactGallery() {
  846.         return $this->contactGallery;
  847.     }
  848.     /**
  849.      * Add interestField
  850.      *
  851.      * @param \App\Entity\InterestField $interestField
  852.      *
  853.      * @return CompanyProfile
  854.      */
  855.     public function addInterestField(\App\Entity\InterestField $interestField) {
  856.         $this->interestFields[] = $interestField;
  857.         return $this;
  858.     }
  859.     /**
  860.      * Remove interestField
  861.      *
  862.      * @param \App\Entity\InterestField $interestField
  863.      */
  864.     public function removeInterestField(\App\Entity\InterestField $interestField) {
  865.         $this->interestFields->removeElement($interestField);
  866.     }
  867.     /**
  868.      * Get interestField
  869.      *
  870.      * @return \Doctrine\Common\Collections\Collection
  871.      */
  872.     public function getInterestFields() {
  873.         return $this->interestFields;
  874.     }
  875.     public function getProfileLink() {
  876.         return $this->profileLink;
  877.     }
  878.     public function setProfileLink($profileLink) {
  879.         $this->profileLink $profileLink;
  880.     }
  881.     public function getGameQuizzes() {
  882.         return $this->gameQuizzes;
  883.     }
  884.     public function setGameQuizzes($gameQuizzes) {
  885.         $this->gameQuizzes $gameQuizzes;
  886.     }
  887.     public function hasGameQuizzes() {
  888.         if (count($this->gameQuizzes) > 0) {
  889.             return true;
  890.         }
  891.         return false;
  892.     }
  893.     public function hasJobDailyRoutine() {
  894.         return false;
  895.     }
  896.     public function getOffers() {
  897.         return $this->offers;
  898.     }
  899.     public function setOffers($offers) {
  900.         $this->offers $offers;
  901.     }
  902.     public function addOffer($offerEntry) {
  903.         $this->offers[] = $offerEntry;
  904.     }
  905.     public function hasOfferID($offerID) {
  906.         foreach ($this->offers as $offerEntry) {
  907.             $id $offerEntry->getOffer()->getId();
  908.             if ($offerID == $id) {
  909.                 return true;
  910.             }
  911.         }
  912.         return false;
  913.     }
  914.     public function countJobOffers() {
  915.         $count 0;
  916.         $now = new \DateTime();
  917.         /* @var $jobOffer JobMarket */
  918.         foreach ($this->jobOffers as $jobOffer) {
  919.             $state $jobOffer->getJobMarketState();
  920.             if (empty($state)) {
  921.                 continue;
  922.             }
  923.             $stateID $state->getId();
  924.             if ($stateID != 1) {
  925.                 continue;
  926.             }
  927.             $closeDate $jobOffer->getClosedDate();
  928.             if ($now <= $closeDate) {
  929.                 $count++;
  930.             }
  931.         }
  932.         return $count;
  933.     }
  934.     public function countJobs() {
  935.         return count($this->jobs);
  936.     }
  937. }