<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
class JobMarket {
/**
* @var int
*/
private $id;
/**
* @var string
*/
private $name;
/**
* @var int
*/
private $number_of_positions;
/**
* @var \DateTime|null
*/
private $start_date;
/**
* @var \DateTime|null
*/
private $apply_until;
/**
* @var string
*/
private $description;
/**
* @var string
*/
private $requirements;
/**
* @var string
*/
private $salary;
/**
* @var string
*/
private $details;
/**
* @var \DateTime
*/
private $open_date;
/**
* @var \DateTime
*/
private $closed_date;
/**
* @var string
*/
private $url;
/**
* @var \App\Entity\Media
*/
private $image;
/**
* @var \App\Entity\Media
*/
private $customAdvertismentImage;
/**
* @var \App\Entity\Contact
*/
private $contact;
/**
* @var \App\Entity\JobMarketPositionType
*/
private $jobMarketPositionType;
/**
* @var \App\Entity\JobMarketApplyType
*/
private $jobMarketApplyType;
/**
* @var \App\Entity\JobMarketStartType
*/
private $jobMarketStartType;
/**
* @var \App\Entity\User
*/
private $user;
/**
* @var \Doctrine\Common\Collections\Collection
*/
private $addresses;
/**
* @var \Doctrine\Common\Collections\Collection
*/
private $jobs;
/**
* @var \Doctrine\Common\Collections\Collection
*/
private $jobSectors;
/**
* @var \App\Entity\CompanyProfile
*/
private $companyProfile;
/**
* @var \App\Entity\JobMarketState
*/
private $jobMarketState;
/**
* @var string
*/
private $additional_info;
/**
* Constructor
*/
public function __construct() {
$this->addresses = new ArrayCollection();
$this->jobs = new ArrayCollection();
$this->jobSectors = new ArrayCollection();
}
/**
* Get id.
*
* @return int
*/
public function getId() {
return $this->id;
}
/**
* Set name.
*
* @param string $name
*
* @return JobMarket
*/
public function setName($name) {
$this->name = $name;
return $this;
}
/**
* Get name.
*
* @return string
*/
public function getName() {
return $this->name;
}
/**
* Set numberOfPositions.
*
* @param int $numberOfPositions
*
* @return JobMarket
*/
public function setNumberOfPositions($numberOfPositions) {
$this->number_of_positions = $numberOfPositions;
return $this;
}
/**
* Get numberOfPositions.
*
* @return int
*/
public function getNumberOfPositions() {
return $this->number_of_positions;
}
/**
* Set startDate.
*
* @param \DateTime|null $startDate
*
* @return JobMarket
*/
public function setStartDate($startDate = null) {
$this->start_date = $startDate;
return $this;
}
/**
* Get startDate.
*
* @return \DateTime|null
*/
public function getStartDate() {
return $this->start_date;
}
/**
* Set applyUntil.
*
* @param \DateTime|null $applyUntil
*
* @return JobMarket
*/
public function setApplyUntil($applyUntil = null) {
$this->apply_until = $applyUntil;
return $this;
}
/**
* Get applyUntil.
*
* @return \DateTime|null
*/
public function getApplyUntil() {
return $this->apply_until;
}
/**
* Set description.
*
* @param string $description
*
* @return JobMarket
*/
public function setDescription($description) {
$this->description = $description;
return $this;
}
/**
* Get description.
*
* @return string
*/
public function getDescription() {
return $this->description;
}
/**
* Set requirements.
*
* @param string $requirements
*
* @return JobMarket
*/
public function setRequirements($requirements) {
$this->requirements = $requirements;
return $this;
}
/**
* Get requirements.
*
* @return string
*/
public function getRequirements() {
return $this->requirements;
}
/**
* Set salary.
*
* @param string $salary
*
* @return JobMarket
*/
public function setSalary($salary) {
$this->salary = $salary;
return $this;
}
/**
* Get salary.
*
* @return string
*/
public function getSalary() {
return $this->salary;
}
/**
* Set details.
*
* @param string $details
*
* @return JobMarket
*/
public function setDetails($details) {
$this->details = $details;
return $this;
}
/**
* Get details.
*
* @return string
*/
public function getDetails() {
return $this->details;
}
/**
* Set openDate.
*
* @param \DateTime $openDate
*
* @return JobMarket
*/
public function setOpenDate($openDate) {
$this->open_date = $openDate;
return $this;
}
/**
* Get openDate.
*
* @return \DateTime
*/
public function getOpenDate() {
return $this->open_date;
}
/**
* Set closedDate.
*
* @param \DateTime $closedDate
*
* @return JobMarket
*/
public function setClosedDate($closedDate) {
$this->closed_date = $closedDate;
return $this;
}
/**
* Get closedDate.
*
* @return \DateTime
*/
public function getClosedDate() {
return $this->closed_date;
}
/**
* Set url.
*
* @param string $url
*
* @return JobMarket
*/
public function setUrl($url) {
$this->url = $url;
return $this;
}
/**
* Get url.
*
* @return string
*/
public function getUrl() {
return $this->url;
}
/**
* Set image.
*
* @param \App\Entity\Media|null $image
*
* @return JobMarket
*/
public function setImage(\App\Entity\Media $image = null) {
$this->image = $image;
return $this;
}
/**
* Get image.
*
* @return \App\Entity\Media|null
*/
public function getImage() {
return $this->image;
}
/**
* Set customAdvertismentImage.
*
* @param \App\Entity\Media|null $customAdvertismentImage
*
* @return JobMarket
*/
public function setCustomAdvertismentImage(\App\Entity\Media $customAdvertismentImage = null) {
$this->customAdvertismentImage = $customAdvertismentImage;
return $this;
}
/**
* Get customAdvertismentImage.
*
* @return \App\Entity\Media|null
*/
public function getCustomAdvertismentImage() {
return $this->customAdvertismentImage;
}
/**
* Set contact.
*
* @param \App\Entity\Contact|null $contact
*
* @return JobMarket
*/
public function setContact(\App\Entity\Contact $contact = null) {
$this->contact = $contact;
return $this;
}
/**
* Get contact.
*
* @return \App\Entity\Contact|null
*/
public function getContact() {
return $this->contact;
}
/**
* Set jobMarketPositionType.
*
* @param \App\Entity\JobMarketPositionType|null $jobMarketPositionType
*
* @return JobMarket
*/
public function setJobMarketPositionType(\App\Entity\JobMarketPositionType $jobMarketPositionType = null) {
$this->jobMarketPositionType = $jobMarketPositionType;
return $this;
}
/**
* Get jobMarketPositionType.
*
* @return \App\Entity\JobMarketPositionType|null
*/
public function getJobMarketPositionType() {
return $this->jobMarketPositionType;
}
/**
* Set jobMarketApplyType.
*
* @param \App\Entity\JobMarketApplyType|null $jobMarketApplyType
*
* @return JobMarket
*/
public function setJobMarketApplyType(\App\Entity\JobMarketApplyType $jobMarketApplyType = null) {
$this->jobMarketApplyType = $jobMarketApplyType;
return $this;
}
/**
* Get jobMarketApplyType.
*
* @return \App\Entity\JobMarketApplyType|null
*/
public function getJobMarketApplyType() {
return $this->jobMarketApplyType;
}
/**
* Set jobMarketStartType.
*
* @param \App\Entity\JobMarketStartType|null $jobMarketStartType
*
* @return JobMarket
*/
public function setJobMarketStartType(\App\Entity\JobMarketStartType $jobMarketStartType = null) {
$this->jobMarketStartType = $jobMarketStartType;
return $this;
}
/**
* Get jobMarketStartType.
*
* @return \App\Entity\JobMarketStartType|null
*/
public function getJobMarketStartType() {
return $this->jobMarketStartType;
}
/**
* Set user.
*
* @param \App\Entity\User|null $user
*
* @return JobMarket
*/
public function setUser(\App\Entity\User $user = null) {
$this->user = $user;
return $this;
}
/**
* Get user.
*
* @return \App\Entity\User|null
*/
public function getUser() {
return $this->user;
}
/**
* Add job.
*
* @param \App\Entity\Job $job
*
* @return JobMarket
*/
public function addJob(\App\Entity\Job $job) {
$this->jobs[] = $job;
return $this;
}
/**
* Remove job.
*
* @param \App\Entity\Job $job
*
* @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
*/
public function removeJob(\App\Entity\Job $job) {
return $this->jobs->removeElement($job);
}
/**
* Get jobs.
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getJobs() {
return $this->jobs;
}
/**
* Add address.
*
* @param \App\Entity\Address $address
*
* @return JobMarket
*/
public function addAddress(\App\Entity\Address $address) {
$this->addresses[] = $address;
return $this;
}
/**
* Remove address.
*
* @param \App\Entity\Address $address
*
* @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
*/
public function removeAddress(\App\Entity\Address $address) {
return $this->addresses->removeElement($address);
}
/**
* Get addresses.
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getAddresses() {
return $this->addresses;
}
/**
* Add jobSector.
*
* @param \App\Entity\JobSector $jobSector
*
* @return JobMarket
*/
public function addJobSector(\App\Entity\JobSector $jobSector) {
$this->jobSectors[] = $jobSector;
return $this;
}
/**
* Remove jobSector.
*
* @param \App\Entity\JobSector $jobSector
*
* @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
*/
public function removeJobSector(\App\Entity\JobSector $jobSector) {
return $this->jobSectors->removeElement($jobSector);
}
/**
* Get jobSectors.
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getJobSectors() {
return $this->jobSectors;
}
/**
* Set additionalInfo.
*
* @param string $additionalInfo
*
* @return JobMarket
*/
public function setAdditionalInfo($additionalInfo) {
$this->additional_info = $additionalInfo;
return $this;
}
/**
* Get additionalInfo.
*
* @return string
*/
public function getAdditionalInfo() {
return $this->additional_info;
}
/**
* Set jobMarketState.
*
* @param \App\Entity\JobMarketState|null $jobMarketState
*
* @return JobMarket
*/
public function setJobMarketState(\App\Entity\JobMarketState $jobMarketState = null) {
$this->jobMarketState = $jobMarketState;
return $this;
}
/**
* Get jobMarketState.
*
* @return \App\Entity\JobMarketState|null
*/
public function getJobMarketState() {
return $this->jobMarketState;
}
/**
* Set companyProfile.
*
* @param \App\Entity\CompanyProfile|null $companyProfile
*
* @return JobMarket
*/
public function setCompanyProfile(\App\Entity\CompanyProfile $companyProfile = null) {
$this->companyProfile = $companyProfile;
return $this;
}
/**
* Get companyProfile.
*
* @return \App\Entity\CompanyProfile|null
*/
public function getCompanyProfile() {
return $this->companyProfile;
}
/*
* Get the interest fields of the company profile
*
* multiple jobs may be attached
*
* */
public function getInterestFields() {
if (empty($this->jobs)) {
return array();
}
/* @var $job \App\Entity\Job */
$job = $this->jobs[0];
if (empty($job)) {
return array();
}
return $job->getInterestFields();
}
}