<?php
namespace App\Entity;
use App\Repository\CandidatureRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=CandidatureRepository::class)
* @ORM\HasLifecycleCallbacks()
*/
class Candidature
{
const POSTED = "envoyée";
const REJECTED = "rejetée";
const ACCEPTED = "acceptée";
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity=Contact::class, inversedBy="candidatures",cascade={"persist"})
* @ORM\JoinColumn(nullable=false)
*/
private $contact;
/**
* @ORM\Column(type="datetime")
*/
private $sendDate;
/**
* @ORM\OneToMany(targetEntity=Media::class, mappedBy="candidature")
*/
private $medias;
/**
* @ORM\Column(type="date")
*/
private $availableFrom;
/**
* @ORM\Column(type="date")
*/
private $availableTo;
/**
* @ORM\ManyToOne(targetEntity=Job::class, inversedBy="candidatures")
*/
private $jobPosition;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $comments;
/**
* @ORM\ManyToOne(targetEntity=Saison::class)
* @ORM\JoinColumn(nullable=false)
*/
private $saison;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $statut;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isActive;
/**
* @ORM\Column(type="boolean", nullable=false)
*/
private $isCoupDeCoeur;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $legacyId;
/**
* @ORM\Column(type="datetime")
*/
private $updatedDate;
/**
* @ORM\PrePersist
*/
public function updateValueCreate(): void
{
$this->updatedDate = new \DateTime();
}
/**
* @ORM\PreUpdate
*/
public function updateValueChange(): void
{
$this->updatedDate = new \DateTime();
}
public function __construct()
{
$this->medias = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getContact(): ?Contact
{
return $this->contact;
}
public function setContact(?Contact $contact): self
{
$this->contact = $contact;
return $this;
}
public function getSendDate(): ?\DateTimeInterface
{
return $this->sendDate;
}
public function setSendDate(\DateTimeInterface $sendDate): self
{
$this->sendDate = $sendDate;
return $this;
}
/**
* @return Collection|Media[]
*/
public function getMedias(): Collection
{
return $this->medias;
}
public function addMedia(Media $media): self
{
if (!$this->medias->contains($media)) {
$this->medias[] = $media;
$media->setCandidature($this);
}
return $this;
}
public function removeMedia(Media $media): self
{
if ($this->medias->removeElement($media)) {
// set the owning side to null (unless already changed)
if ($media->getCandidature() === $this) {
$media->setCandidature(null);
}
}
return $this;
}
public function getAvailableFrom(): ?\DateTimeInterface
{
return $this->availableFrom;
}
public function setAvailableFrom(\DateTimeInterface $availableFrom): self
{
$this->availableFrom = $availableFrom;
return $this;
}
public function getAvailableTo(): ?\DateTimeInterface
{
return $this->availableTo;
}
public function setAvailableTo(\DateTimeInterface $availableTo): self
{
$this->availableTo = $availableTo;
return $this;
}
public function getJobPosition(): ?Job
{
return $this->jobPosition;
}
public function setJobPosition(?Job $jobPosition): self
{
$this->jobPosition = $jobPosition;
return $this;
}
public function getComments(): ?string
{
return $this->comments;
}
public function setComments(?string $comments): self
{
$this->comments = $comments;
return $this;
}
public function getSaison(): ?Saison
{
return $this->saison;
}
public function setSaison(?Saison $saison): self
{
$this->saison = $saison;
return $this;
}
public function isAffectation(): ?bool
{
return $this->saison !== null;
}
public function getStatut(): ?string
{
return $this->statut;
}
public function setStatut(?string $statut): self
{
$this->statut = $statut;
return $this;
}
public function getIsActive(): ?bool
{
return $this->isActive;
}
public function setIsActive(?bool $isActive): self
{
$this->isActive = $isActive;
return $this;
}
public function getIsCoupDeCoeur(): ?bool
{
return $this->isCoupDeCoeur;
}
public function setIsCoupDeCoeur(?bool $isCoupDeCoeur): self
{
$this->isCoupDeCoeur = $isCoupDeCoeur;
return $this;
}
public function getLegacyId(): ?int
{
return $this->legacyId;
}
public function setLegacyId(?int $legacyId): self
{
$this->legacyId = $legacyId;
return $this;
}
public function getUpdatedDate(): ?\DateTimeInterface
{
return $this->updatedDate;
}
public function setUpdatedDate(\DateTimeInterface $updatedDate): self
{
$this->updatedDate = $updatedDate;
return $this;
}
}