src/Entity/SchoolProfile.php line 11

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\OfferEntry;
  7. use App\Entity\SchoolLocation;
  8. class SchoolProfile implements ProfileInterface {
  9.     /**
  10.      * @var integer
  11.      */
  12.     private $id;
  13.     /**
  14.      * @var uuid
  15.      */
  16.     private $uuid;
  17.     /**
  18.      * @var string
  19.      */
  20.     private $name;
  21.     /**
  22.      * @var string
  23.      */
  24.     private $description;
  25.     /**
  26.      * @var string
  27.      */
  28.     private $trainingInformation;
  29.     /**
  30.      * @var string
  31.      */
  32.     private $url;
  33.     /**
  34.      * @var integer
  35.      */
  36.     private $clickCount 0;
  37.     /**
  38.      * @var \App\Entity\School
  39.      */
  40.     private $school;
  41.     /**
  42.      * @var \App\Entity\Communication
  43.      */
  44.     private $communication;
  45.     /**
  46.      * @var integer
  47.      */
  48.     private $logoStyle;
  49.     
  50.     /**
  51.      * @var \App\Entity\Media
  52.      */
  53.     private $schoolProfilePicture;
  54.     /**
  55.      * @var \App\Entity\Media
  56.      */
  57.     private $headerPicture;
  58.     /**
  59.      * @var \App\Entity\Gallery
  60.      */
  61.     private $gallery;
  62.     /**
  63.      * @var \App\Entity\Gallery
  64.      */
  65.     private $videos;
  66.     /**
  67.      * @var \App\Entity\Gallery
  68.      */
  69.     private $documents;
  70.     /**
  71.      * @var \Doctrine\Common\Collections\Collection
  72.      */
  73.     private $contacts;
  74.     /**
  75.      * @var \Doctrine\Common\Collections\Collection
  76.      */
  77.     private $locations;
  78.     /**
  79.      * @var \Doctrine\Common\Collections\Collection
  80.      */
  81.     private $jobs;
  82.     /**
  83.      * @var \Doctrine\Common\Collections\Collection
  84.      */
  85.     private $schoolBenefits;
  86.     /**
  87.      * @var \Doctrine\Common\Collections\Collection
  88.      */
  89.     private $searchTags;
  90.     /**
  91.      * @var bool
  92.      */
  93.     private $isVisible true;
  94.     /**
  95.      * @var \App\Entity\ProfileLink
  96.      */
  97.     private $profileLink;
  98.     /**
  99.      * @var \Doctrine\Common\Collections\Collection
  100.      */
  101.     private $offers;
  102.     /**
  103.      * @var \Doctrine\Common\Collections\Collection
  104.      */
  105.     private $gameQuizzes;
  106.     /**
  107.      * @var \Doctrine\Common\Collections\Collection
  108.      */
  109.     private $jobDailyRoutines;
  110.     /**
  111.      * @var string|null
  112.      */
  113.     private $certificateInformation;
  114.     /**
  115.      * Constructor
  116.      */
  117.     public function __construct() {
  118.         $this->contacts = new ArrayCollection();
  119.         $this->gameQuizzes = new ArrayCollection();
  120.         $this->jobs = new ArrayCollection();
  121.         $this->locations = new ArrayCollection();
  122.         $this->offers = new ArrayCollection();
  123.         $this->schoolBenefits = new ArrayCollection();
  124.         $this->searchTags = new ArrayCollection();
  125.         $this->jobDailyRoutines = new ArrayCollection();
  126.     }
  127.     /**
  128.      * Get id
  129.      *
  130.      * @return integer
  131.      */
  132.     public function getId() {
  133.         return $this->id;
  134.     }
  135.     /**
  136.      * Set uuid
  137.      *
  138.      * @param uuid $uuid
  139.      *
  140.      * @return SchoolProfile
  141.      */
  142.     public function setUuid($uuid) {
  143.         $this->uuid $uuid;
  144.         return $this;
  145.     }
  146.     /**
  147.      * Get uuid
  148.      *
  149.      * @return uuid
  150.      */
  151.     public function getUuid() {
  152.         return $this->uuid;
  153.     }
  154.     /**
  155.      * Set name
  156.      *
  157.      * @param string $name
  158.      *
  159.      * @return SchoolProfile
  160.      */
  161.     public function setName($name) {
  162.         $this->name $name;
  163.         return $this;
  164.     }
  165.     /**
  166.      * Get name
  167.      *
  168.      * @return string
  169.      */
  170.     public function getName() {
  171.         return $this->name;
  172.     }
  173.     /**
  174.      * Set description
  175.      *
  176.      * @param string $description
  177.      *
  178.      * @return SchoolProfile
  179.      */
  180.     public function setDescription($description) {
  181.         $this->description $description;
  182.         return $this;
  183.     }
  184.     /**
  185.      * Get description
  186.      *
  187.      * @return string
  188.      */
  189.     public function getDescription() {
  190.         return $this->description;
  191.     }
  192.     /**
  193.      * Set trainingInformation
  194.      *
  195.      * @param string $trainingInformation
  196.      *
  197.      * @return SchoolProfile
  198.      */
  199.     public function setTrainingInformation($trainingInformation) {
  200.         $this->trainingInformation $trainingInformation;
  201.         return $this;
  202.     }
  203.     /**
  204.      * Get trainingInformation
  205.      *
  206.      * @return string
  207.      */
  208.     public function getTrainingInformation() {
  209.         return $this->trainingInformation;
  210.     }
  211.     /**
  212.      * Set url
  213.      *
  214.      * @param string $url
  215.      *
  216.      * @return SchoolProfile
  217.      */
  218.     public function setUrl($url) {
  219.         $this->url $url;
  220.         return $this;
  221.     }
  222.     /**
  223.      * Get url
  224.      *
  225.      * @return string
  226.      */
  227.     public function getUrl() {
  228.         return $this->url;
  229.     }
  230.     /**
  231.      * Set clickCount
  232.      *
  233.      * @param integer $clickCount
  234.      *
  235.      * @return SchoolProfile
  236.      */
  237.     public function setClickCount($clickCount) {
  238.         $this->clickCount $clickCount;
  239.         return $this;
  240.     }
  241.     /**
  242.      * Get clickCount
  243.      *
  244.      * @return integer
  245.      */
  246.     public function getClickCount() {
  247.         return $this->clickCount;
  248.     }
  249.     /**
  250.      * Set school
  251.      *
  252.      * @param \App\Entity\School $school
  253.      *
  254.      * @return SchoolProfile
  255.      */
  256.     public function setSchool(\App\Entity\School $school null) {
  257.         $this->school $school;
  258.         return $this;
  259.     }
  260.     /**
  261.      * Get school
  262.      *
  263.      * @return \App\Entity\School
  264.      */
  265.     public function getSchool() {
  266.         return $this->school;
  267.     }
  268.     /**
  269.      * Set communication
  270.      *
  271.      * @param \App\Entity\Communication $communication
  272.      *
  273.      * @return SchoolProfile
  274.      */
  275.     public function setCommunication(\App\Entity\Communication $communication null) {
  276.         $this->communication $communication;
  277.         return $this;
  278.     }
  279.     /**
  280.      * Get communication
  281.      *
  282.      * @return \App\Entity\Communication
  283.      */
  284.     public function getCommunication() {
  285.         return $this->communication;
  286.     }
  287.     /**
  288.      * Set gallery
  289.      *
  290.      * @param \App\Entity\Gallery $gallery
  291.      *
  292.      * @return SchoolProfile
  293.      */
  294.     public function setGallery(\App\Entity\Gallery $gallery null) {
  295.         $this->gallery $gallery;
  296.         return $this;
  297.     }
  298.     /**
  299.      * Get gallery
  300.      *
  301.      * @return \App\Entity\Gallery
  302.      */
  303.     public function getGallery() {
  304.         return $this->gallery;
  305.     }
  306.     /**
  307.      * Set videos
  308.      *
  309.      * @param \App\Entity\Gallery $videos
  310.      *
  311.      * @return SchoolProfile
  312.      */
  313.     public function setVideos(\App\Entity\Gallery $videos null) {
  314.         $this->videos $videos;
  315.         return $this;
  316.     }
  317.     /**
  318.      * Get videos
  319.      *
  320.      * @return \App\Entity\Gallery
  321.      */
  322.     public function getVideos() {
  323.         return $this->videos;
  324.     }
  325.     /**
  326.      * Set documents
  327.      *
  328.      * @param \App\Entity\Gallery $documents
  329.      *
  330.      * @return SchoolProfile
  331.      */
  332.     public function setDocuments(\App\Entity\Gallery $documents null) {
  333.         $this->documents $documents;
  334.         return $this;
  335.     }
  336.     /**
  337.      * Get documents
  338.      *
  339.      * @return \App\Entity\Gallery
  340.      */
  341.     public function getDocuments() {
  342.         return $this->documents;
  343.     }
  344.     /**
  345.      * Add location
  346.      *
  347.      * @param \App\Entity\SchoolLocation $location
  348.      *
  349.      * @return SchoolProfile
  350.      */
  351.     public function addLocation(\App\Entity\SchoolLocation $location) {
  352.         $this->locations[] = $location;
  353.         return $this;
  354.     }
  355.     /**
  356.      * Remove location
  357.      *
  358.      * @param \App\Entity\SchoolLocation $location
  359.      */
  360.     public function removeLocation(\App\Entity\SchoolLocation $location) {
  361.         $this->locations->removeElement($location);
  362.     }
  363.     /**
  364.      * Get locations
  365.      *
  366.      * @return \Doctrine\Common\Collections\Collection
  367.      */
  368.     public function getLocations() {
  369.         return $this->locations;
  370.     }
  371.     /**
  372.      * Add job
  373.      *
  374.      * @param \App\Entity\Job $job
  375.      *
  376.      * @return SchoolProfile
  377.      */
  378.     public function addJob(\App\Entity\Job $job) {
  379.         $this->jobs[] = $job;
  380.         return $this;
  381.     }
  382.     /**
  383.      * Remove job
  384.      *
  385.      * @param \App\Entity\Job $job
  386.      */
  387.     public function removeJob(\App\Entity\Job $job) {
  388.         $this->jobs->removeElement($job);
  389.     }
  390.     /**
  391.      * Get jobs
  392.      *
  393.      * @return \Doctrine\Common\Collections\Collection
  394.      */
  395.     public function getJobs() {
  396.         return $this->jobs;
  397.     }
  398.     /**
  399.      * Add searchTag.
  400.      *
  401.      * @param \App\Entity\SearchTag $searchTag
  402.      *
  403.      * @return SchoolProfile
  404.      */
  405.     public function addSearchTag(\App\Entity\SearchTag $searchTag) {
  406.         $this->searchTags[] = $searchTag;
  407.         return $this;
  408.     }
  409.     /**
  410.      * Remove searchTag.
  411.      *
  412.      * @param \App\Entity\SearchTag $searchTag
  413.      *
  414.      * @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
  415.      */
  416.     public function removeSearchTag(\App\Entity\SearchTag $searchTag) {
  417.         return $this->searchTags->removeElement($searchTag);
  418.     }
  419.     /**
  420.      * Add schoolBenefit.
  421.      *
  422.      * @param \App\Entity\SchoolBenefit $schoolBenefit
  423.      *
  424.      * @return SchoolProfile
  425.      */
  426.     public function addSchoolBenefit(\App\Entity\SchoolBenefit $schoolBenefit) {
  427.         $this->schoolBenefits[] = $schoolBenefit;
  428.         return $this;
  429.     }
  430.     /**
  431.      * Remove schoolBenefit.
  432.      *
  433.      * @param \App\Entity\SchoolBenefit $schoolBenefit
  434.      *
  435.      * @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
  436.      */
  437.     public function removeSchoolBenefit(\App\Entity\SchoolBenefit $schoolBenefit) {
  438.         return $this->schoolBenefits->removeElement($schoolBenefit);
  439.     }
  440.     /**
  441.      * Get schoolBenefits.
  442.      *
  443.      * @return \Doctrine\Common\Collections\Collection
  444.      */
  445.     public function getSchoolBenefits() {
  446.         return $this->schoolBenefits;
  447.     }
  448.     /**
  449.      * Get searchTags.
  450.      *
  451.      * @return \Doctrine\Common\Collections\Collection
  452.      */
  453.     public function getSearchTags() {
  454.         return $this->searchTags;
  455.     }
  456.     public function getLogoStyle() {
  457.         return $this->logoStyle;
  458.     }
  459.     public function setLogoStyle($logoStyle) {
  460.         $this->logoStyle $logoStyle;
  461.     }
  462.     
  463.     /**
  464.      * Set schoolProfilePicture.
  465.      *
  466.      * @param \App\Entity\Media|null $schoolProfilePicture
  467.      *
  468.      * @return SchoolProfile
  469.      */
  470.     public function setSchoolProfilePicture(\App\Entity\Media $schoolProfilePicture null) {
  471.         $this->schoolProfilePicture $schoolProfilePicture;
  472.         return $this;
  473.     }
  474.     /**
  475.      * Get schoolProfilePicture.
  476.      *
  477.      * @return \App\Entity\Media|null
  478.      */
  479.     public function getSchoolProfilePicture() {
  480.         return $this->schoolProfilePicture;
  481.     }
  482.     /**
  483.      * Set headerPicture
  484.      *
  485.      * @param \App\Entity\Media $headerPicture
  486.      *
  487.      * @return SchoolProfile
  488.      */
  489.     public function setHeaderPicture(\App\Entity\Media $headerPicture null) {
  490.         $this->headerPicture $headerPicture;
  491.         return $this;
  492.     }
  493.     /**
  494.      * Get headerPicture
  495.      *
  496.      * @return \App\Entity\Media
  497.      */
  498.     public function getHeaderPicture() {
  499.         return $this->headerPicture;
  500.     }
  501.     /**
  502.      * Set certificateInformation.
  503.      *
  504.      * @param string|null $certificateInformation
  505.      *
  506.      * @return SchoolProfile
  507.      */
  508.     public function setCertificateInformation($certificateInformation null) {
  509.         $this->certificateInformation $certificateInformation;
  510.         return $this;
  511.     }
  512.     /**
  513.      * Get certificateInformation.
  514.      *
  515.      * @return string|null
  516.      */
  517.     public function getCertificateInformation() {
  518.         return $this->certificateInformation;
  519.     }
  520.     public function getSchoolTypes() {
  521.         if ($this->school == null) {
  522.             return array();
  523.         }
  524.         return $this->school->getSchoolTypes();
  525.     }
  526.     /* !!! must correspond to id in table profile_type !!! */
  527.     public function getProfileTypeID() {
  528.         return 3;
  529.     }
  530.     public function hasAddressLatLon() {
  531.         /* @var $location SchoolLocation */
  532.         foreach ($this->locations as $location) {
  533.             if (!empty($location->getAddress()) && !empty($location->getAddress()->getAddressLatLon())) {
  534.                 return true;
  535.             }
  536.         }
  537.         return false;
  538.     }
  539.     /**
  540.      * Set isVisible.
  541.      *
  542.      * @param bool $isVisible
  543.      *
  544.      * @return SchoolProfile
  545.      */
  546.     public function setIsVisible($isVisible) {
  547.         $this->isVisible $isVisible;
  548.         return $this;
  549.     }
  550.     /**
  551.      * Get isVisible.
  552.      *
  553.      * @return bool
  554.      */
  555.     public function getIsVisible() {
  556.         return $this->isVisible;
  557.     }
  558.     public function getIsComplete() {
  559.         if (empty($this->schoolProfilePicture)) {
  560.             return false;
  561.         }
  562.         if (strlen($this->description) < 100) {
  563.             return false;
  564.         }
  565.         return true;
  566.     }
  567.     /**
  568.      * @var \App\Entity\ContactGallery
  569.      */
  570.     private $contactGallery;
  571.     /**
  572.      * Set contactGallery.
  573.      *
  574.      * @param \App\Entity\ContactGallery|null $contactGallery
  575.      *
  576.      * @return SchoolProfile
  577.      */
  578.     public function setContactGallery(\App\Entity\ContactGallery $contactGallery null) {
  579.         $this->contactGallery $contactGallery;
  580.         return $this;
  581.     }
  582.     /**
  583.      * Get contactGallery.
  584.      *
  585.      * @return \App\Entity\ContactGallery|null
  586.      */
  587.     public function getContactGallery() {
  588.         return $this->contactGallery;
  589.     }
  590.     public function getInterestFields() {
  591.         if (empty($this->school)) {
  592.             return array();
  593.         }
  594.         return $this->school->getInterestFields();
  595.     }
  596.     public function getProfileLink() {
  597.         return $this->profileLink;
  598.     }
  599.     public function setProfileLink($profileLink) {
  600.         $this->profileLink $profileLink;
  601.     }
  602.     public function getGameQuizzes() {
  603.         return $this->gameQuizzes;
  604.     }
  605.     public function setGameQuizzes($gameQuizzes) {
  606.         $this->gameQuizzes $gameQuizzes;
  607.     }
  608.     public function hasGameQuizzes() {
  609.         if (count($this->gameQuizzes) > 0) {
  610.             return true;
  611.         }
  612.         return false;
  613.     }
  614.     public function getJobDailyRoutines() {
  615.         return $this->jobDailyRoutines;
  616.     }
  617.     public function setJobDailyRoutines($jobDailyRoutines) {
  618.         $this->jobDailyRoutines $jobDailyRoutines;
  619.     }
  620.     public function addJobDailyRoutine($jobDailyRoutine) {
  621.         $this->jobDailyRoutines->add($jobDailyRoutine);
  622.     }
  623.     public function hasJobDailyRoutine() {
  624.         if (count($this->jobDailyRoutines) > 0) {
  625.             return true;
  626.         }
  627.         return false;
  628.     }
  629.     public function getOffers() {
  630.         return $this->offers;
  631.     }
  632.     public function setOffers($offers) {
  633.         $this->offers $offers;
  634.     }
  635.     public function addOffer($offerEntry) {
  636.         $this->offers[] = $offerEntry;
  637.     }
  638.     public function getOfferEntryByOfferID($offerID) {
  639.         if (empty($this->offers)) {
  640.             return null;
  641.         }
  642.         foreach ($this->offers as $offerEntry) {
  643.             $entryOfferID $offerEntry->getOffer()->getId();
  644.             if ($entryOfferID == $offerID) {
  645.                 return $offerEntry;
  646.             }
  647.         }
  648.         return null;
  649.     }
  650.     public function hasOfferID($offerID) {
  651.         foreach ($this->offers as $offerEntry) {
  652.             $id $offerEntry->getOffer()->getId();
  653.             if ($offerID == $id) {
  654.                 return true;
  655.             }
  656.         }
  657.         return false;
  658.     }
  659.     public function countJobOffers() {
  660.         return 0;
  661.     }
  662.     public function countJobs() {
  663.         return count($this->jobs);
  664.     }
  665. }