<?php
namespace App\Entity;
use Bluesquare\StorageBundle\Annotations\Storage;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\OfferRepository")
*
* @ORM\HasLifecycleCallbacks()
*/
class Offer
{
public function __construct()
{
$this->userOffers = new ArrayCollection();
$this->newsletters = new ArrayCollection();
}
/**
* @ORM\Id()
*
* @ORM\GeneratedValue()
*
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Newsletter", mappedBy="offer")
*/
private $newsletters;
/**
* @ORM\Column(type="string", nullable=true, length=180)
*/
private $external_link = null;
/**
* @ORM\Column(type="string", nullable=true, length=180)
*/
private $external_logo = null;
/**
* @ORM\Column(type="string", nullable=true, length=180)
*
* @Storage(name="main", mode="public", prefix="offer")
*/
public $logo = null;
/**
* @ORM\Column(type="string", nullable=true, length=180)
*
* @Storage(name="main", mode="public", prefix="offer_origin")
*/
public $logo_origin = null;
/**
* @ORM\Column(type="string", nullable=true, length=180)
*
* @Storage(name="main", mode="public", prefix="offer_medium")
*/
public $logo_medium = null;
/**
* @ORM\Column(type="string", nullable=true, length=180)
*
* @Storage(name="main", mode="public", prefix="offer_small")
*/
public $logo_small = null;
/**
* @ORM\Column(type="string", nullable=false, length=180)
*/
private $name = null;
/**
* @ORM\Column(type="string", nullable=true, length=180)
*/
private $company = null;
/**
* @ORM\Column(type="string", nullable=true, length=180)
*/
private $city = null;
/**
* @ORM\Column(type="string", nullable=true, length=180)
*/
private $district = null;
/**
* @ORM\Column(type="string", nullable=true, length=180)
*/
private $country = null;
/**
* @ORM\Column(type="string", nullable=true, length=180)
*/
private $salary = null;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $description = null;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $skills = null;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $company_description = null;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $publication_start = null;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $publication_end = null;
/**
* @ORM\Column(type="integer", nullable=false)
*/
private $publication_status = 0;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $external_url;
/**
* @ORM\Column(type="string", nullable=true, length=180)
*
* @Storage(name="main", mode="public", prefix="offer")
*/
public $job_description = null;
/**
* @ORM\Column(type="string", nullable=true, length=180)
*
* @Storage(name="main", mode="public", prefix="offer_origin")
*/
public $job_description_origin = null;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
public $applications_stop_at;
public function getId(): ?int
{
return $this->id;
}
public function getExternalLink()
{
return $this->external_link;
}
public function setExternalLink($external_link)
{
$this->external_link = $external_link;
return $this;
}
public function getExternalLogo()
{
return $this->external_logo;
}
public function setExternalLogo($external_logo)
{
$this->external_logo = $external_logo;
return $this;
}
public function getLogo()
{
return $this->logo;
}
public function setLogo($logo)
{
$this->logo = $logo;
return $this;
}
/**
* @return null
*/
public function getJobDescription()
{
return $this->job_description;
}
/**
* @param null $job_description
*
* @return Offer
*/
public function setJobDescription($job_description)
{
$this->job_description = $job_description;
return $this;
}
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
return $this;
}
public function getCompany()
{
return $this->company;
}
public function setCompany($company)
{
$this->company = $company;
return $this;
}
public function getCity()
{
return $this->city;
}
public function setCity($city)
{
$this->city = $city;
return $this;
}
public function getDistrict()
{
return $this->district;
}
public function setDistrict($district)
{
$this->district = $district;
return $this;
}
public function getCountry()
{
return $this->country;
}
public function setCountry($country)
{
$this->country = $country;
return $this;
}
public function getSalary()
{
return $this->salary;
}
public function setSalary($salary)
{
$this->salary = $salary;
return $this;
}
public function getDescription()
{
return $this->description;
}
public function setDescription($description)
{
$this->description = $description;
return $this;
}
public function getSkills()
{
return $this->skills;
}
public function setSkills($skills)
{
$this->skills = $skills;
return $this;
}
public function getCompanyDescription()
{
return $this->company_description;
}
public function setCompanyDescription($company_description)
{
$this->company_description = $company_description;
return $this;
}
public function getPublicationStart()
{
return $this->publication_start;
}
public function setPublicationStart($publication_start)
{
$this->publication_start = $publication_start;
return $this;
}
public function getPublicationEnd()
{
return $this->publication_end;
}
public function setPublicationEnd($publication_end)
{
$this->publication_end = $publication_end;
return $this;
}
public function getPublicationStatus()
{
return $this->publication_status;
}
public function setPublicationStatus($publication_status)
{
$this->publication_status = $publication_status;
return $this;
}
/**
* @return mixed
*/
public function getExternalUrl()
{
return $this->external_url;
}
/**
* @param mixed $external_url
*
* @return Offer
*/
public function setExternalUrl($external_url)
{
$this->external_url = $external_url;
return $this;
}
/**
* @ORM\Column(type="datetime", nullable=false)
*/
private $created_at;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $updated_at = null;
public function getCreatedAt(): \DateTimeInterface
{
return $this->created_at;
}
public function setCreatedAt(\DateTimeInterface $created_at): self
{
$this->created_at = $created_at;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updated_at;
}
public function setUpdatedAt(?\DateTimeInterface $updated_at): self
{
$this->updated_at = $updated_at;
return $this;
}
/**
* @ORM\PrePersist
*/
public function setCreatedAtValue()
{
$this->setCreatedAt(new \DateTime());
}
/**
* @ORM\PreUpdate
*/
public function setUpdatedAtValue()
{
$this->setUpdatedAt(new \DateTime());
}
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $deleted_at;
public function getDeletedAt(): ?\DateTimeInterface
{
return $this->deleted_at;
}
public function setDeletedAt(?\DateTimeInterface $deleted_at): self
{
$this->deleted_at = $deleted_at;
return $this;
}
// Links
/**
* @ORM\ManyToOne(targetEntity="App\Entity\OfferActivityArea")
*
* @ORM\JoinColumn(nullable=true)
*/
private $offer_activity_area;
public function getOfferActivityArea(): ?OfferActivityArea
{
return $this->offer_activity_area;
}
public function setOfferActivityArea(?OfferActivityArea $offer_activity_area): self
{
$this->offer_activity_area = $offer_activity_area;
return $this;
}
/**
* @ORM\ManyToOne(targetEntity="App\Entity\OfferContract")
*
* @ORM\JoinColumn(nullable=true)
*/
private $offer_contract;
public function getOfferContract(): ?OfferContract
{
return $this->offer_contract;
}
public function setOfferContract(?OfferContract $offer_contract): self
{
$this->offer_contract = $offer_contract;
return $this;
}
/**
* @ORM\ManyToOne(targetEntity="App\Entity\OfferExperience")
*
* @ORM\JoinColumn(nullable=true)
*/
private $offer_experience;
public function getOfferExperience(): ?OfferExperience
{
return $this->offer_experience;
}
public function setOfferExperience(?OfferExperience $offer_experience): self
{
$this->offer_experience = $offer_experience;
return $this;
}
/**
* @ORM\ManyToOne(targetEntity="App\Entity\OfferFunction")
*
* @ORM\JoinColumn(nullable=true)
*/
private $offer_function;
public function getOfferFunction(): ?OfferFunction
{
return $this->offer_function;
}
public function setOfferFunction(?OfferFunction $offer_function): self
{
$this->offer_function = $offer_function;
return $this;
}
/**
* @ORM\ManyToOne(targetEntity="App\Entity\OfferStudyLevel")
*
* @ORM\JoinColumn(nullable=true)
*/
private $offer_study_level;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $contact_name;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $contact_email;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $contact_phone;
/**
* @ORM\OneToMany(targetEntity="App\Entity\UserOffer", mappedBy="offer")
*/
private $userOffers;
public function getOfferStudyLevel(): ?OfferStudyLevel
{
return $this->offer_study_level;
}
public function setOfferStudyLevel(?OfferStudyLevel $offer_study_level): self
{
$this->offer_study_level = $offer_study_level;
return $this;
}
public function getContactName(): ?string
{
return $this->contact_name;
}
public function setContactName(?string $contact_name): self
{
$this->contact_name = $contact_name;
return $this;
}
public function getContactEmail(): ?string
{
return $this->contact_email;
}
public function setContactEmail(?string $contact_email): self
{
$this->contact_email = $contact_email;
return $this;
}
public function getContactPhone(): ?string
{
return $this->contact_phone;
}
public function setContactPhone(?string $contact_phone): self
{
$this->contact_phone = $contact_phone;
return $this;
}
/**
* @return mixed
*/
public function getApplicationsStopAt()
{
return $this->applications_stop_at;
}
/**
* @param mixed $applications_stop_at
*
* @return Offer
*/
public function setApplicationsStopAt($applications_stop_at)
{
$this->applications_stop_at = $applications_stop_at;
return $this;
}
/**
* @return Collection|UserOffer[]
*/
public function getUserOffers(): Collection
{
return $this->userOffers;
}
public function addUserOffer(UserOffer $userOffer): self
{
if (!$this->userOffers->contains($userOffer)) {
$this->userOffers[] = $userOffer;
$userOffer->setOffer($this);
}
return $this;
}
public function removeUserOffer(UserOffer $userOffer): self
{
if ($this->userOffers->contains($userOffer)) {
$this->userOffers->removeElement($userOffer);
// set the owning side to null (unless already changed)
if ($userOffer->getOffer() === $this) {
$userOffer->setOffer(null);
}
}
return $this;
}
/**
* @return Collection|Newsletter[]
*/
public function getNewsletters(): Collection
{
return $this->newsletters;
}
public function addNewsletter(Newsletter $newsletter): self
{
if (!$this->newsletters->contains($newsletter)) {
$this->newsletters[] = $newsletter;
$newsletter->setOffer($this);
}
return $this;
}
public function removeNewsletter(Newsletter $newsletter): self
{
if ($this->newsletters->contains($newsletter)) {
$this->newsletters->removeElement($newsletter);
// set the owning side to null (unless already changed)
if ($newsletter->getOffer() === $this) {
$newsletter->setOffer(null);
}
}
return $this;
}
/**
* @return null
*/
public function getLogoOrigin()
{
return $this->logo_origin;
}
/**
* @param null $logo_origin
*/
public function setLogoOrigin($logo_origin): void
{
$this->logo_origin = $logo_origin;
}
/**
* @return null
*/
public function getJobDescriptionOrigin()
{
return $this->job_description_origin;
}
/**
* @param null $job_description_origin
*/
public function setJobDescriptionOrigin($job_description_origin): void
{
$this->job_description_origin = $job_description_origin;
}
/**
* @return null
*/
public function getLogoMedium()
{
return $this->logo_medium;
}
/**
* @param null $logo_medium
*/
public function setLogoMedium($logo_medium): void
{
$this->logo_medium = $logo_medium;
}
/**
* @return null
*/
public function getLogoSmall()
{
return $this->logo_small;
}
/**
* @param null $logo_small
*/
public function setLogoSmall($logo_small): void
{
$this->logo_small = $logo_small;
}
}