197 lines
4.7 KiB
PHP
197 lines
4.7 KiB
PHP
<?php
|
|
|
|
namespace App\Entity;
|
|
|
|
use App\Repository\InternRepository;
|
|
use Doctrine\Common\Collections\ArrayCollection;
|
|
use Doctrine\Common\Collections\Collection;
|
|
use Doctrine\DBAL\Types\Types;
|
|
use Doctrine\ORM\Mapping as ORM;
|
|
|
|
#[ORM\Entity(repositoryClass: InternRepository::class)]
|
|
class Intern extends UserApp
|
|
{
|
|
|
|
#[ORM\Column(type: Types::TEXT)]
|
|
private ?string $coverLetter = null;
|
|
|
|
#[ORM\Column(length: 255)]
|
|
private ?string $resume = null;
|
|
|
|
/**
|
|
* @var Collection<int, InternDegree>
|
|
*/
|
|
#[ORM\OneToMany(targetEntity: InternDegree::class, mappedBy: 'intern')]
|
|
private Collection $degrees;
|
|
|
|
/**
|
|
* @var Collection<int, InternSkill>
|
|
*/
|
|
#[ORM\OneToMany(targetEntity: InternSkill::class, mappedBy: 'intern')]
|
|
private Collection $skills;
|
|
|
|
/**
|
|
* @var Collection<int, InternApplication>
|
|
*/
|
|
#[ORM\OneToMany(targetEntity: InternApplication::class, mappedBy: 'intern')]
|
|
private Collection $applications;
|
|
|
|
/**
|
|
* @var Collection<int, InternFavorite>
|
|
*/
|
|
#[ORM\OneToMany(targetEntity: InternFavorite::class, mappedBy: 'intern')]
|
|
private Collection $favorites;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->degrees = new ArrayCollection();
|
|
$this->skills = new ArrayCollection();
|
|
$this->applications = new ArrayCollection();
|
|
$this->favorites = new ArrayCollection();
|
|
}
|
|
|
|
public function getCoverLetter(): ?string
|
|
{
|
|
return $this->coverLetter;
|
|
}
|
|
|
|
public function setCoverLetter(string $coverLetter): static
|
|
{
|
|
$this->coverLetter = $coverLetter;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getResume(): ?string
|
|
{
|
|
return $this->resume;
|
|
}
|
|
|
|
public function setResume(string $resume): static
|
|
{
|
|
$this->resume = $resume;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return Collection<int, InternDegree>
|
|
*/
|
|
public function getDegrees(): Collection
|
|
{
|
|
return $this->degrees;
|
|
}
|
|
|
|
public function addDegree(InternDegree $degree): static
|
|
{
|
|
if (!$this->degrees->contains($degree)) {
|
|
$this->degrees->add($degree);
|
|
$degree->setIntern($this);
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function removeDegree(InternDegree $degree): static
|
|
{
|
|
if ($this->degrees->removeElement($degree)) {
|
|
// set the owning side to null (unless already changed)
|
|
if ($degree->getIntern() === $this) {
|
|
$degree->setIntern(null);
|
|
}
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return Collection<int, InternSkill>
|
|
*/
|
|
public function getSkills(): Collection
|
|
{
|
|
return $this->skills;
|
|
}
|
|
|
|
public function addSkill(InternSkill $skill): static
|
|
{
|
|
if (!$this->skills->contains($skill)) {
|
|
$this->skills->add($skill);
|
|
$skill->setIntern($this);
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function removeSkill(InternSkill $skill): static
|
|
{
|
|
if ($this->skills->removeElement($skill)) {
|
|
// set the owning side to null (unless already changed)
|
|
if ($skill->getIntern() === $this) {
|
|
$skill->setIntern(null);
|
|
}
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return Collection<int, InternApplication>
|
|
*/
|
|
public function getApplications(): Collection
|
|
{
|
|
return $this->applications;
|
|
}
|
|
|
|
public function addApplication(InternApplication $application): static
|
|
{
|
|
if (!$this->applications->contains($application)) {
|
|
$this->applications->add($application);
|
|
$application->setIntern($this);
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function removeApplication(InternApplication $application): static
|
|
{
|
|
if ($this->applications->removeElement($application)) {
|
|
// set the owning side to null (unless already changed)
|
|
if ($application->getIntern() === $this) {
|
|
$application->setIntern(null);
|
|
}
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return Collection<int, InternFavorite>
|
|
*/
|
|
public function getFavorites(): Collection
|
|
{
|
|
return $this->favorites;
|
|
}
|
|
|
|
public function addFavorite(InternFavorite $favorite): static
|
|
{
|
|
if (!$this->favorites->contains($favorite)) {
|
|
$this->favorites->add($favorite);
|
|
$favorite->setIntern($this);
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function removeFavorite(InternFavorite $favorite): static
|
|
{
|
|
if ($this->favorites->removeElement($favorite)) {
|
|
// set the owning side to null (unless already changed)
|
|
if ($favorite->getIntern() === $this) {
|
|
$favorite->setIntern(null);
|
|
}
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
}
|