<?php
namespace App\Entity;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* Manager
*
* @ORM\Table(name="manager", uniqueConstraints={@ORM\UniqueConstraint(name="manager_id_uindex", columns={"id"})})
* @ORM\Entity(repositoryClass="App\Repository\ManagerRepository")
*/
class Manager
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string|null
*
* @ORM\Column(name="first_name", type="string", length=255, nullable=true)
*/
private $firstName;
/**
* @var string|null
*
* @ORM\Column(name="last_name", type="string", length=255, nullable=true)
*/
private $lastName;
/**
* @var bool|null
*
* @ORM\Column(name="admin", type="boolean", nullable=true)
*/
private $admin = false;
/**
* @var bool|null
*
* @ORM\Column(name="allow_particuliers", type="boolean", nullable=true)
*/
private $allowParticuliers = false;
/**
* @var bool|null
*
* @ORM\Column(name="allow_offres_sur_grilles", type="boolean", nullable=true)
*/
private $allowOffresSurGrilles = false;
/**
* @var bool|null
*
* @ORM\Column(name="allow_cotations", type="boolean", nullable=true)
*/
private $allowCotations = false;
/**
* @var bool|null
*
* @ORM\Column(name="allow_customer_base", type="boolean", nullable=true)
*/
private $allowCustomerBase = false;
/**
* @var string|null
*
* @ORM\Column(name="email", type="string", length=255, nullable=true)
*/
private $email;
/**
* @var string|null
*
* @ORM\Column(name="phone", type="string", length=255, nullable=true)
*/
private $phone;
/**
* @var Account|null
*
* @ORM\OneToOne(targetEntity="Account", mappedBy="manager")
*/
private $account;
/**
* @var Collection
*
* @ORM\ManyToMany(targetEntity="Manager", inversedBy="teamMembers")
* @ORM\JoinTable(name="manager_has_supervisor",
* joinColumns={
* @ORM\JoinColumn(name="manager_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="supervisor_id", referencedColumnName="id")
* }
* )
*/
private $supervisors = array();
/**
* @var Collection
*
* @ORM\ManyToMany(targetEntity="Manager", mappedBy="supervisors")
*/
private $teamMembers = array();
/**
* @var string|null
*
* @ORM\Column(name="referent_pricing", type="string", length=255, nullable=true)
*/
private $referentPricing = "pricing@flash-consulting.fr";
/**
* Constructor
*/
public function __construct()
{
$this->supervisors = new \Doctrine\Common\Collections\ArrayCollection();
$this->teamMembers = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @param int $id
*/
public function setId($id)
{
$this->id = $id;
}
/**
* @return string|null
*/
public function getFirstName()
{
return $this->firstName;
}
/**
* @param string|null $firstName
*/
public function setFirstName($firstName)
{
$this->firstName = $firstName;
}
/**
* @return string|null
*/
public function getLastName()
{
return $this->lastName;
}
/**
* @param string|null $lastName
*/
public function setLastName($lastName)
{
$this->lastName = $lastName;
}
/**
* @return bool|null
*/
public function getAdmin()
{
return $this->admin;
}
/**
* @param bool|null $admin
*/
public function setAdmin($admin)
{
$this->admin = $admin;
}
public function getAllowParticuliers(): ?bool
{
return $this->allowParticuliers;
}
public function setAllowParticuliers(?bool $allowParticuliers): void
{
$this->allowParticuliers = $allowParticuliers;
}
public function getAllowOffresSurGrilles(): ?bool
{
return $this->allowOffresSurGrilles;
}
public function setAllowOffresSurGrilles(?bool $allowOffresSurGrilles): void
{
$this->allowOffresSurGrilles = $allowOffresSurGrilles;
}
public function getAllowCotations(): ?bool
{
return $this->allowCotations;
}
public function setAllowCotations(?bool $allowCotations): void
{
$this->allowCotations = $allowCotations;
}
public function getAllowCustomerBase(): ?bool
{
return $this->allowCustomerBase;
}
public function setAllowCustomerBase(?bool $allowCustomerBase): void
{
$this->allowCustomerBase = $allowCustomerBase;
}
/**
* @return string|null
*/
public function getEmail(): ?string
{
return $this->email;
}
/**
* @param string|null $email
*/
public function setEmail(?string $email): void
{
$this->email = $email;
}
/**
* @return string|null
*/
public function getPhone(): ?string
{
return $this->phone;
}
/**
* @param string|null $phone
*/
public function setPhone(?string $phone): void
{
$this->phone = $phone;
}
/**
* @return Account|null
*/
public function getAccount(): ?Account
{
return $this->account;
}
/**
* @param Account|null $account
*/
public function setAccount(?Account $account): void
{
$this->account = $account;
}
public function getSupervisors(): \Doctrine\Common\Collections\ArrayCollection|Collection
{
return $this->supervisors;
}
public function setSupervisors(\Doctrine\Common\Collections\ArrayCollection|Collection $supervisors): void
{
$this->supervisors = $supervisors;
}
public function getTeamMembers(): \Doctrine\Common\Collections\ArrayCollection|Collection
{
return $this->teamMembers;
}
public function setTeamMembers(\Doctrine\Common\Collections\ArrayCollection|Collection $teamMembers): void
{
$this->teamMembers = $teamMembers;
}
public function addSupervisor(Manager $supervisor): self
{
if (!$this->supervisors->contains($supervisor)) {
$this->supervisors->add($supervisor);
$supervisor->addTeamMember($this);
}
return $this;
}
public function removeSupervisor(Manager $supervisor): self
{
if ($this->supervisors->contains($supervisor)) {
$this->supervisors->removeElement($supervisor);
$supervisor->removeTeamMember($this);
}
return $this;
}
public function addTeamMember(Manager $teamMember): self
{
if (!$this->teamMembers->contains($teamMember)) {
$this->teamMembers->add($teamMember);
$teamMember->addSupervisor($this);
}
return $this;
}
public function removeTeamMember(Manager $teamMember): self
{
if ($this->teamMembers->contains($teamMember)) {
$this->teamMembers->removeElement($teamMember);
$teamMember->removeSupervisor($this);
}
return $this;
}
public function getFullName(): string
{
return $this->getFirstName().' '.$this->getLastName();
}
public function hasTeamMember(): bool
{
if ($this->getTeamMembers()->count() > 0) {
return true;
}
return false;
}
public function isSupervisedBy(Manager $manager): bool
{
if ($this->getSupervisors()->contains($manager)) {
return true;
}
return false;
}
public function getReferentPricing(): ?string
{
return $this->referentPricing;
}
public function setReferentPricing(?string $referentPricing): void
{
$this->referentPricing = $referentPricing;
}
}