ajout diplome et message + gestion des relations

This commit is contained in:
Romain 2024-11-10 15:41:01 +01:00 committed by bourgoino
parent ac42fb9f85
commit e083dc1cec
3 changed files with 158 additions and 96 deletions

View File

@ -30,21 +30,21 @@ class Announcement
private ?Status $status = null;
/**
* @var Collection<int, Intern>
* @var Collection<int, InternApplication>
*/
#[ORM\ManyToMany(targetEntity: Intern::class, mappedBy: 'favorites')]
private Collection $internsfav;
#[ORM\OneToMany(targetEntity: InternApplication::class, mappedBy: 'application')]
private Collection $applicants;
/**
* @var Collection<int, Intern>
* @var Collection<int, InternFavorite>
*/
#[ORM\ManyToMany(targetEntity: Intern::class, mappedBy: 'applications')]
private Collection $applicants;
#[ORM\OneToMany(targetEntity: InternFavorite::class, mappedBy: 'announcement')]
private Collection $favoritesInterns;
public function __construct()
{
$this->internsfav = new ArrayCollection();
$this->applicants = new ArrayCollection();
$this->favoritesInterns = new ArrayCollection();
}
public function getId(): ?int
@ -101,54 +101,60 @@ class Announcement
}
/**
* @return Collection<int, Intern>
*/
public function getInternsfav(): Collection
{
return $this->internsfav;
}
public function addInternfav(Intern $intern): static
{
if (!$this->internsfav->contains($intern)) {
$this->internsfav->add($intern);
$intern->addFavorite($this);
}
return $this;
}
public function removeInternfav(Intern $intern): static
{
if ($this->internsfav->removeElement($intern)) {
$intern->removeFavorite($this);
}
return $this;
}
/**
* @return Collection<int, Intern>
* @return Collection<int, InternApplication>
*/
public function getApplicants(): Collection
{
return $this->applicants;
}
public function addApplicant(Intern $applicant): static
public function addApplicants(InternApplication $applicants): static
{
if (!$this->applicants->contains($applicant)) {
$this->applicants->add($applicant);
$applicant->addApplication($this);
if (!$this->applicants->contains($applicants)) {
$this->applicants->add($applicants);
$applicants->setApplication($this);
}
return $this;
}
public function removeApplicant(Intern $applicant): static
public function removeApplicants(InternApplication $applicants): static
{
if ($this->applicants->removeElement($applicant)) {
$applicant->removeApplication($this);
if ($this->applicants->removeElement($applicants)) {
// set the owning side to null (unless already changed)
if ($applicants->getApplication() === $this) {
$applicants->setApplication(null);
}
}
return $this;
}
/**
* @return Collection<int, InternFavorite>
*/
public function getFavoritesInterns(): Collection
{
return $this->favoritesInterns;
}
public function addFavoritesIntern(InternFavorite $favoritesIntern): static
{
if (!$this->favoritesInterns->contains($favoritesIntern)) {
$this->favoritesInterns->add($favoritesIntern);
$favoritesIntern->setAnnouncement($this);
}
return $this;
}
public function removeFavoritesIntern(InternFavorite $favoritesIntern): static
{
if ($this->favoritesInterns->removeElement($favoritesIntern)) {
// set the owning side to null (unless already changed)
if ($favoritesIntern->getAnnouncement() === $this) {
$favoritesIntern->setAnnouncement(null);
}
}
return $this;

View File

@ -19,30 +19,35 @@ class Intern extends UserApp
private ?string $resume = null;
/**
* @var Collection<int, Announcement>
* @var Collection<int, InternDegree>
*/
#[ORM\ManyToMany(targetEntity: Announcement::class, inversedBy: 'interns')]
#[ORM\JoinTable(name: 'favorites')]
private Collection $favorites;
#[ORM\OneToMany(targetEntity: InternDegree::class, mappedBy: 'intern')]
private Collection $degrees;
/**
* @var Collection<int, Announcement>
* @var Collection<int, InternSkill>
*/
#[ORM\ManyToMany(targetEntity: Announcement::class, inversedBy: 'applicants')]
#[ORM\JoinTable(name: 'applications')]
#[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, Skill>
* @var Collection<int, InternFavorite>
*/
#[ORM\ManyToMany(targetEntity: Skill::class, inversedBy: 'interns')]
private Collection $skills;
#[ORM\OneToMany(targetEntity: InternFavorite::class, mappedBy: 'intern')]
private Collection $favorites;
public function __construct()
{
$this->favorites = new ArrayCollection();
$this->applications = new ArrayCollection();
$this->degrees = new ArrayCollection();
$this->skills = new ArrayCollection();
$this->applications = new ArrayCollection();
$this->favorites = new ArrayCollection();
}
public function getCoverLetter(): ?string
@ -70,73 +75,121 @@ class Intern extends UserApp
}
/**
* @return Collection<int, Announcement>
* @return Collection<int, InternDegree>
*/
public function getFavorites(): Collection
public function getDegrees(): Collection
{
return $this->favorites;
return $this->degrees;
}
public function addFavorite(Announcement $favorite): static
public function addDegree(InternDegree $degree): static
{
if (!$this->favorites->contains($favorite)) {
$this->favorites->add($favorite);
if (!$this->degrees->contains($degree)) {
$this->degrees->add($degree);
$degree->setIntern($this);
}
return $this;
}
public function removeFavorite(Announcement $favorite): static
public function removeDegree(InternDegree $degree): static
{
$this->favorites->removeElement($favorite);
return $this;
}
/**
* @return Collection<int, Announcement>
*/
public function getApplications(): Collection
{
return $this->applications;
}
public function addApplication(Announcement $application): static
{
if (!$this->applications->contains($application)) {
$this->applications->add($application);
if ($this->degrees->removeElement($degree)) {
// set the owning side to null (unless already changed)
if ($degree->getIntern() === $this) {
$degree->setIntern(null);
}
}
return $this;
}
public function removeApplication(Announcement $application): static
{
$this->applications->removeElement($application);
return $this;
}
/**
* @return Collection<int, Skill>
* @return Collection<int, InternSkill>
*/
public function getSkills(): Collection
{
return $this->skills;
}
public function addSkill(Skill $skill): static
public function addSkill(InternSkill $skill): static
{
if (!$this->skills->contains($skill)) {
$this->skills->add($skill);
$skill->setIntern($this);
}
return $this;
}
public function removeSkill(Skill $skill): static
public function removeSkill(InternSkill $skill): static
{
$this->skills->removeElement($skill);
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;
}

View File

@ -19,9 +19,9 @@ class Skill
private ?string $label = null;
/**
* @var Collection<int, Intern>
* @var Collection<int, InternSkill>
*/
#[ORM\ManyToMany(targetEntity: Intern::class, mappedBy: 'skills')]
#[ORM\OneToMany(targetEntity: InternSkill::class, mappedBy: 'skill')]
private Collection $interns;
public function __construct()
@ -47,27 +47,30 @@ class Skill
}
/**
* @return Collection<int, Intern>
* @return Collection<int, InternSkill>
*/
public function getInterns(): Collection
{
return $this->interns;
}
public function addIntern(Intern $intern): static
public function addIntern(InternSkill $intern): static
{
if (!$this->interns->contains($intern)) {
$this->interns->add($intern);
$intern->addSkill($this);
$intern->setSkill($this);
}
return $this;
}
public function removeIntern(Intern $intern): static
public function removeIntern(InternSkill $intern): static
{
if ($this->interns->removeElement($intern)) {
$intern->removeSkill($this);
// set the owning side to null (unless already changed)
if ($intern->getSkill() === $this) {
$intern->setSkill(null);
}
}
return $this;