<?php
namespace App\Entity;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Validator\Constraints as Assert;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="cal_job_offer")
*/
class JobOffer
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $status = "";
/**
* @ORM\OneToOne(targetEntity="App\Entity\Media", cascade={"persist"}, orphanRemoval=true)
*/
private $image;
/**
* @Assert\NotBlank()
* @Assert\Length(max=100)
* @ORM\Column(type="string", length=100)
*/
private $type = "";
/**
* @ORM\OneToOne(targetEntity="App\Entity\Translation", cascade={"persist"}, orphanRemoval=true)
*/
private $name;
/**
* @ORM\OneToOne(targetEntity="App\Entity\Translation", cascade={"persist"}, orphanRemoval=true)
*/
private $exerpt;
/**
* @ORM\OneToOne(targetEntity="App\Entity\Translation", cascade={"persist"}, orphanRemoval=true)
*/
private $description;
/**
* @var DateTime $createdAt
*
* @Gedmo\Timestampable(on="create")
* @ORM\Column(type="datetime")
*/
private $createdAt;
/**
* @var DateTime $updated
*
* @Gedmo\Timestampable(on="update")
* @ORM\Column(type="datetime")
*/
private $updatedAt;
/**
* @ORM\OneToMany(targetEntity="App\Entity\JobApplication", mappedBy="jobOffer")
*/
private $applications;
//--------------------------------------------------------------
// Utilities
//--------------------------------------------------------------
public function __construct()
{
$this->applications = new ArrayCollection();
}
//--------------------------------------------------------------
// Getters and setters
//--------------------------------------------------------------
/**
* @return mixed
*/
public function getId()
{
return $this->id;
}
/**
* @param mixed $id
*/
public function setId($id): void
{
$this->id = $id;
}
/**
* @return string
*/
public function getStatus(): string
{
return $this->status;
}
/**
* @param string $status
*/
public function setStatus(string $status): void
{
$this->status = $status;
}
/**
* @return mixed
*/
public function getImage()
{
return $this->image;
}
/**
* @param mixed $image
*/
public function setImage($image): void
{
$this->image = $image;
}
/**
* @return string
*/
public function getType(): string
{
return $this->type;
}
/**
* @param string $type
*/
public function setType(string $type): void
{
$this->type = $type;
}
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $name
*/
public function setName($name): void
{
$this->name = $name;
}
/**
* @return string
*/
public function getExerpt()
{
return $this->exerpt;
}
/**
* @param string $exerpt
*/
public function setExerpt($exerpt): void
{
$this->exerpt = $exerpt;
}
/**
* @return string
*/
public function getDescription()
{
return $this->description;
}
/**
* @param string $description
*/
public function setDescription($description): void
{
$this->description = $description;
}
/**
* @return DateTime
*/
public function getCreatedAt(): DateTime
{
return $this->createdAt;
}
/**
* @param DateTime $createdAt
*/
public function setCreatedAt(DateTime $createdAt): void
{
$this->createdAt = $createdAt;
}
/**
* @return DateTime
*/
public function getUpdatedAt(): DateTime
{
return $this->updatedAt;
}
/**
* @param DateTime $updatedAt
*/
public function setUpdatedAt(DateTime $updatedAt): void
{
$this->updatedAt = $updatedAt;
}
/**
* @return ArrayCollection
*/
public function getApplications()
{
return $this->applications;
}
/**
* @param ArrayCollection $applications
*/
public function setApplications($applications): void
{
$this->applications = $applications;
}
}