<?php
namespace App\Entity;
use App\Repository\MembreRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=MembreRepository::class)
*/
class Membre
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $nom;
/**
* @ORM\Column(type="string", length=255, nullable=false)
*/
private $prenom;
/**
* @ORM\Column(type="string")
*/
private $cin;
/**
* @ORM\Column(type="string", length=255)
*/
private $genre;
/**
* @ORM\Column(type="date")
*/
private $dateNaiss;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $lastSyncedGoogleScholarDate;
/**
* @ORM\Column(type="string", nullable=false)
*/
private $tel;
/**
* @ORM\Column(type="string", length=255)
*/
private $email;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $adresse;
/**
* @ORM\Column(type="string", length=255)
*/
private $statut;
/**
* @ORM\Column(type="string", length=255, nullable=false)
*/
private $universite;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $etablissement;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $equipe;
/**
* @ORM\Column(type="boolean")
*/
private $isDeleted = false;
/**
* @ORM\Column(type="string", length=255, nullable=false)
*/
private $dernier_diplome;
/**
* @ORM\Column(type="date", nullable=false)
*/
private $date_diplome;
/**
* @ORM\Column(type="string", length=255, nullable=false)
*/
private $etablissement_formation;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $titre_these_master;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $encadreur;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $poucentage_avancement;
/**
* @ORM\ManyToMany(targetEntity=Projet::class, inversedBy="membres", cascade={"persist"})
*/
private $projets;
/**
* @ORM\ManyToOne(targetEntity=TitlesMembers::class)
* @ORM\JoinColumn(nullable=false)
*/
private $titlesMembers;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $CvFr;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $CvEn;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $ScopusID;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $DBLPLink;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $OrcId;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $ScholarId;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $ResKeywords;
/**
* @ORM\Column(type="text", nullable=false)
*/
private $ShBiography;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $photoProfil;
/**
* @ORM\ManyToMany(targetEntity=Publications::class, inversedBy="Membre" , orphanRemoval=true)
* @ORM\JoinTable(name="publications_membre")
* */
private $publications;
/**
* @ORM\ManyToMany(targetEntity=Event::class, mappedBy="membres")
*/
private $events;
/**
* @ORM\Column(type="string", length=255)
*/
private $etat;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $webPage;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $linkedin;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $creation_date;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $modification_date;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $validated_by_id;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $Headoflab;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $Doctoraldelegate;
/**
* @ORM\OneToOne(targetEntity=User::class, inversedBy="membre", cascade={"persist", "remove"})
* @ORM\JoinColumn(nullable=false)
*/
private $user;
private $isEditor;
public function __construct()
{
$this->projets = new ArrayCollection();
$this->productionScientifiques = new ArrayCollection();
$this->publications = new ArrayCollection();
$this->events = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getNom(): ?string
{
return $this->nom;
}
public function setNom(string $nom): self
{
$this->nom = $nom;
return $this;
}
public function getPrenom(): ?string
{
return $this->prenom;
}
public function setPrenom(string $prenom): self
{
$this->prenom = $prenom;
return $this;
}
public function getCin(): ?string
{
return $this->cin;
}
public function setCin(string $cin): self
{
$this->cin = $cin;
return $this;
}
public function getGenre(): ?string
{
return $this->genre;
}
public function setGenre(string $genre): self
{
$this->genre = $genre;
return $this;
}
public function getDateNaiss(): ?\DateTimeInterface
{
return $this->dateNaiss;
}
public function setDateNaiss(\DateTimeInterface $dateNaiss): self
{
$this->dateNaiss = $dateNaiss;
return $this;
}
public function getLastSyncedGoogleScholarDate(): ?\DateTimeInterface
{
return $this->lastSyncedGoogleScholarDate;
}
public function setLastSyncedGoogleScholarDate(?\DateTimeInterface $lastSyncedGoogleScholarDate): self
{
$this->lastSyncedGoogleScholarDate = $lastSyncedGoogleScholarDate;
return $this;
}
public function getTel(): ?string
{
return $this->tel;
}
public function setTel(string $tel): self
{
$this->tel = $tel;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(string $email): self
{
$this->email = $email;
return $this;
}
public function getAdresse(): ?string
{
return $this->adresse;
}
public function setAdresse(string $adresse): self
{
$this->adresse = $adresse;
return $this;
}
public function getStatut(): ?string
{
return $this->statut;
}
public function setStatut(string $statut): self
{
$this->statut = $statut;
return $this;
}
public function getGrade(): ?string
{
return $this->grade;
}
public function setGrade(?string $grade): self
{
$this->grade = $grade;
return $this;
}
public function getUniversite(): ?string
{
return $this->universite;
}
public function setUniversite(?string $universite): self
{
$this->universite = $universite;
return $this;
}
public function getEtablissement(): ?string
{
return $this->etablissement;
}
public function setEtablissement(?string $etablissement): self
{
$this->etablissement = $etablissement;
return $this;
}
public function getEquipe(): ?string
{
return $this->equipe;
}
public function setEquipe(?string $equipe): self
{
$this->equipe = $equipe;
return $this;
}
public function getDernierDiplome(): ?string
{
return $this->dernier_diplome;
}
public function setDernierDiplome(?string $dernier_diplome): self
{
$this->dernier_diplome = $dernier_diplome;
return $this;
}
public function getDateDiplome(): ?\DateTimeInterface
{
return $this->date_diplome;
}
public function setDateDiplome(?\DateTimeInterface $date_diplome): self
{
$this->date_diplome = $date_diplome;
return $this;
}
public function getEtablissementFormation(): ?string
{
return $this->etablissement_formation;
}
public function setEtablissementFormation(?string $etablissement_formation): self
{
$this->etablissement_formation = $etablissement_formation;
return $this;
}
public function getTitreTheseMaster(): ?string
{
return $this->titre_these_master;
}
public function setTitreTheseMaster(?string $titre_these_master): self
{
$this->titre_these_master = $titre_these_master;
return $this;
}
public function getEncadreur(): ?string
{
return $this->encadreur;
}
public function setEncadreur(?string $encadreur): self
{
$this->encadreur = $encadreur;
return $this;
}
public function getPoucentageAvancement(): ?int
{
return $this->poucentage_avancement;
}
public function setPoucentageAvancement(?int $poucentage_avancement): self
{
$this->poucentage_avancement = $poucentage_avancement;
return $this;
}
public function getIsDeleted(): ?bool
{
return $this->isDeleted;
}
public function setIsDeleted(bool $isDeleted): self
{
$this->isDeleted = $isDeleted;
return $this;
}
/**
* @return Collection|Projet[]
*/
public function getProjets(): Collection
{
return $this->projets;
}
public function addProjet(Projet $projet): self
{
if (!$this->projets->contains($projet)) {
$this->projets[] = $projet;
}
return $this;
}
public function removeProjet(Projet $projet): self
{
$this->projets->removeElement($projet);
return $this;
}
public function isIsDeleted(): ?bool
{
return $this->isDeleted;
}
public function getTitlesMembers(): ?TitlesMembers
{
return $this->titlesMembers;
}
public function setTitlesMembers(?TitlesMembers $titlesMembers): self
{
$this->titlesMembers = $titlesMembers;
return $this;
}
public function getCvFr(): ?string
{
return $this->CvFr;
}
public function setCvFr(?string $CvFr): self
{
$this->CvFr = $CvFr;
return $this;
}
public function getCvEn(): ?string
{
return $this->CvEn;
}
public function setCvEn(?string $CvEn): self
{
$this->CvEn = $CvEn;
return $this;
}
public function getScopusID(): ?string
{
return $this->ScopusID;
}
public function setScopusID(string $ScopusID): self
{
$this->ScopusID = $ScopusID;
return $this;
}
public function getDBLPLink(): ?string
{
return $this->DBLPLink;
}
public function setDBLPLink(string $DBLPLink): self
{
$this->DBLPLink = $DBLPLink;
return $this;
}
public function getOrcId(): ?string
{
return $this->OrcId;
}
public function setOrcId(string $OrcId): self
{
$this->OrcId = $OrcId;
return $this;
}
public function getScholarId(): ?string
{
return $this->ScholarId;
}
public function setScholarId(string $ScholarId): self
{
$this->ScholarId = $ScholarId;
return $this;
}
public function getResKeywords(): ?string
{
return $this->ResKeywords;
}
public function setResKeywords(?string $ResKeywords): self
{
$this->ResKeywords = $ResKeywords;
return $this;
}
public function getShBiography(): ?string
{
return $this->ShBiography;
}
public function setShBiography(?string $ShBiography): self
{
$this->ShBiography = $ShBiography;
return $this;
}
public function getPhotoProfil(): ?string
{
return $this->photoProfil;
}
public function setPhotoProfil(?string $photoProfil): self
{
$this->photoProfil = $photoProfil;
return $this;
}
/**
* @return Collection<int, Publications>
*/
public function getPublications(): Collection
{
return $this->publications;
}
public function addPublication(Publications $publication): self
{
if (!$this->publications->contains($publication)) {
$this->publications[] = $publication;
$publication->addMembre($this);
}
return $this;
}
public function addPublicationEdit(Publications $publication): self
{
$this->publications[] = $publication;
$publication->addMembre($this);
return $this;
}
public function removePublication(Publications $publication): self
{
if ($this->publications->contains($publication)) {
$this->publications->removeElement($publication);
$publication->removeMembre($this); // Assurez-vous que la relation inverse est mise à jour
}
return $this;
}
/**
* @return Collection<int, Event>
*/
public function getEvents(): Collection
{
return $this->events;
}
public function addEvent(Event $event): self
{
if (!$this->events->contains($event)) {
$this->events[] = $event;
$event->addMembre($this);
}
return $this;
}
public function removeEvent(Event $event): self
{
if ($this->events->removeElement($event)) {
$event->removeMembre($this);
}
return $this;
}
public function getEtat(): ?string
{
return $this->etat;
}
public function setEtat(string $etat): self
{
$this->etat = $etat;
return $this;
}
public function getWebPage(): ?string
{
return $this->webPage;
}
public function setWebPage(?string $webPage): self
{
$this->webPage = $webPage;
return $this;
}
public function getLinkedin(): ?string
{
return $this->linkedin;
}
public function setLinkedin(?string $linkedin): self
{
$this->linkedin = $linkedin;
return $this;
}
public function getCreationDate(): ?\DateTimeInterface
{
return $this->creation_date;
}
public function setCreationDate(?\DateTimeInterface $creation_date): self
{
$this->creation_date = $creation_date;
return $this;
}
public function getModificationDate(): ?\DateTimeInterface
{
return $this->modification_date;
}
public function setModificationDate(?\DateTimeInterface $modification_date): self
{
$this->modification_date = $modification_date;
return $this;
}
public function getValidatedById(): ?int
{
return $this->validated_by_id;
}
public function setValidatedById(?int $validated_by_id): self
{
$this->validated_by_id = $validated_by_id;
return $this;
}
public function getHeadoflab(): ?string
{
return $this->Headoflab;
}
public function setHeadoflab(?string $Headoflab): self
{
$this->Headoflab = $Headoflab;
return $this;
}
public function getDoctoraldelegate(): ?string
{
return $this->Doctoraldelegate;
}
public function setDoctoraldelegate(?string $Doctoraldelegate): self
{
$this->Doctoraldelegate = $Doctoraldelegate;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(User $user): self
{
$this->user = $user;
return $this;
}
public function removeAllPublications(): self
{
foreach ($this->publications as $publication) {
$this->removePublication($publication);
}
return $this;
}
/**
* @return mixed
*/
public function getIsEditor()
{
return $this->isEditor;
}
/**
* @param mixed $isEditor
*/
public function setIsEditor($isEditor): void
{
$this->isEditor = $isEditor;
}
}