<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* Expert
*
* @ORM\Table(name="expert", indexes={@ORM\Index(name="IDX_4F1B9342E522CE8F", columns={"expertise_type_id"}), @ORM\Index(name="IDX_4F1B9342F92F3E70", columns={"country_id"})})
* @ORM\Entity
*/
class Expert
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var bool|null
*
* @ORM\Column(name="manager", type="boolean", nullable=true, options={"default"="NULL"})
*/
private $manager;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, nullable=false)
*/
private $name;
/**
* @var string
*
* @ORM\Column(name="firstname", type="string", length=255, nullable=false)
*/
private $firstname;
/**
* @var string
*
* @ORM\Column(name="email", type="string", length=255, nullable=false)
*/
private $email;
/**
* @var \ExpertiseType
*
* @ORM\ManyToOne(targetEntity="ExpertiseType")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="expertise_type_id", referencedColumnName="id")
* })
*/
private $expertiseType;
/**
* @var \Country
*
* @ORM\ManyToOne(targetEntity="Country")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="country_id", referencedColumnName="id")
* })
*/
private $country;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="GeneralSkill", inversedBy="expert")
* @ORM\JoinTable(name="expert_general_skill",
* joinColumns={
* @ORM\JoinColumn(name="expert_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="general_skill_id", referencedColumnName="id")
* }
* )
*/
private $generalSkill;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Organism", inversedBy="expert")
* @ORM\JoinTable(name="expert_organism",
* joinColumns={
* @ORM\JoinColumn(name="expert_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="organism_id", referencedColumnName="id")
* }
* )
*/
private $organism;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isAdmin;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $orcid;
/**
* Constructor
*/
public function __construct()
{
$this->generalSkill = new \Doctrine\Common\Collections\ArrayCollection();
$this->organism = new \Doctrine\Common\Collections\ArrayCollection();
}
public function __toString() { return $this->name." ".$this->firstname;}
public function getId(): ?int
{
return $this->id;
}
public function isManager(): ?bool
{
return $this->manager;
}
public function setManager(?bool $manager): self
{
$this->manager = $manager;
return $this;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getFirstname(): ?string
{
return $this->firstname;
}
public function setFirstname(string $firstname): self
{
$this->firstname = $firstname;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(string $email): self
{
$this->email = $email;
return $this;
}
public function getExpertiseType(): ?ExpertiseType
{
return $this->expertiseType;
}
public function setExpertiseType(?ExpertiseType $expertiseType): self
{
$this->expertiseType = $expertiseType;
return $this;
}
public function getCountry(): ?Country
{
return $this->country;
}
public function setCountry(?Country $country): self
{
$this->country = $country;
return $this;
}
/**
* @return Collection<int, GeneralSkill>
*/
public function getGeneralSkill(): Collection
{
return $this->generalSkill;
}
public function addGeneralSkill(GeneralSkill $generalSkill): self
{
if (!$this->generalSkill->contains($generalSkill)) {
$this->generalSkill[] = $generalSkill;
}
return $this;
}
public function removeGeneralSkill(GeneralSkill $generalSkill): self
{
$this->generalSkill->removeElement($generalSkill);
return $this;
}
/**
* @return Collection<int, Organism>
*/
public function getOrganism(): Collection
{
return $this->organism;
}
public function addOrganism(Organism $organism): self
{
if (!$this->organism->contains($organism)) {
$this->organism[] = $organism;
}
return $this;
}
public function removeOrganism(Organism $organism): self
{
$this->organism->removeElement($organism);
return $this;
}
public function isIsAdmin(): ?bool
{
return $this->isAdmin;
}
public function setIsAdmin(?bool $isAdmin): self
{
$this->isAdmin = $isAdmin;
return $this;
}
public function getOrcid(): ?string
{
return $this->orcid;
}
public function setOrcid(?string $orcid): self
{
$this->orcid = $orcid;
return $this;
}
}