hegresphere/src/Entity/Intern.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;
}
}