diff --git a/src/Entity/Intern.php b/src/Entity/Intern.php index daaf428..70c8477 100644 --- a/src/Entity/Intern.php +++ b/src/Entity/Intern.php @@ -19,35 +19,30 @@ class Intern extends UserApp private ?string $resume = null; /** - * @var Collection + * @var Collection */ - #[ORM\OneToMany(targetEntity: InternDegree::class, mappedBy: 'intern')] - private Collection $degrees; + #[ORM\ManyToMany(targetEntity: Announcement::class, inversedBy: 'interns')] + #[ORM\JoinTable(name: 'favorites')] + private Collection $favorites; /** - * @var Collection + * @var Collection */ - #[ORM\OneToMany(targetEntity: InternSkill::class, mappedBy: 'intern')] - private Collection $skills; - - /** - * @var Collection - */ - #[ORM\OneToMany(targetEntity: InternApplication::class, mappedBy: 'intern')] + #[ORM\ManyToMany(targetEntity: Announcement::class, inversedBy: 'applicants')] + #[ORM\JoinTable(name: 'applications')] private Collection $applications; /** - * @var Collection + * @var Collection */ - #[ORM\OneToMany(targetEntity: InternFavorite::class, mappedBy: 'intern')] - private Collection $favorites; + #[ORM\ManyToMany(targetEntity: Skill::class, inversedBy: 'interns')] + private Collection $skills; public function __construct() { - $this->degrees = new ArrayCollection(); - $this->skills = new ArrayCollection(); - $this->applications = new ArrayCollection(); $this->favorites = new ArrayCollection(); + $this->applications = new ArrayCollection(); + $this->skills = new ArrayCollection(); } public function getCoverLetter(): ?string @@ -75,122 +70,74 @@ class Intern extends UserApp } /** - * @return Collection - */ - 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 - */ - 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 - */ - 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 + * @return Collection */ public function getFavorites(): Collection { return $this->favorites; } - public function addFavorite(InternFavorite $favorite): static + public function addFavorite(Announcement $favorite): static { if (!$this->favorites->contains($favorite)) { $this->favorites->add($favorite); - $favorite->setIntern($this); } return $this; } - public function removeFavorite(InternFavorite $favorite): static + public function removeFavorite(Announcement $favorite): static { - if ($this->favorites->removeElement($favorite)) { - // set the owning side to null (unless already changed) - if ($favorite->getIntern() === $this) { - $favorite->setIntern(null); - } + $this->favorites->removeElement($favorite); + + return $this; + } + + /** + * @return Collection + */ + public function getApplications(): Collection + { + return $this->applications; + } + + public function addApplication(Announcement $application): static + { + if (!$this->applications->contains($application)) { + $this->applications->add($application); } return $this; } + + public function removeApplication(Announcement $application): static + { + $this->applications->removeElement($application); + + return $this; + } + + /** + * @return Collection + */ + public function getSkills(): Collection + { + return $this->skills; + } + + public function addSkill(Skill $skill): static + { + if (!$this->skills->contains($skill)) { + $this->skills->add($skill); + } + + return $this; + } + + public function removeSkill(Skill $skill): static + { + $this->skills->removeElement($skill); + + return $this; + } } diff --git a/src/Entity/Skill.php b/src/Entity/Skill.php index 7752cfe..47bea20 100644 --- a/src/Entity/Skill.php +++ b/src/Entity/Skill.php @@ -19,9 +19,9 @@ class Skill private ?string $label = null; /** - * @var Collection + * @var Collection */ - #[ORM\OneToMany(targetEntity: InternSkill::class, mappedBy: 'skill')] + #[ORM\ManyToMany(targetEntity: Intern::class, mappedBy: 'skills')] private Collection $interns; public function __construct() @@ -47,30 +47,27 @@ class Skill } /** - * @return Collection + * @return Collection */ public function getInterns(): Collection { return $this->interns; } - public function addIntern(InternSkill $intern): static + public function addIntern(Intern $intern): static { if (!$this->interns->contains($intern)) { $this->interns->add($intern); - $intern->setSkill($this); + $intern->addSkill($this); } return $this; } - public function removeIntern(InternSkill $intern): static + public function removeIntern(Intern $intern): static { if ($this->interns->removeElement($intern)) { - // set the owning side to null (unless already changed) - if ($intern->getSkill() === $this) { - $intern->setSkill(null); - } + $intern->removeSkill($this); } return $this;