<?php
namespace App\Entity;
use App\Repository\FormateurRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass=FormateurRepository::class)
* @UniqueEntity(
* fields={"email"},
* message="Ce mail est déjà utilisé."
* )
* @UniqueEntity(fields={"telephone"},message="Ce téléphone est déjà utilisé." )
*/
class Formateur
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=40)
*/
private $firstname;
/**
* @ORM\Column(type="string", length=40)
*/
private $lastname;
/**
* @ORM\Column(type="string", length=255,nullable=true)
* @Assert\Email(message = "L'email '{{ value }}' n'est pas valide.")
*/
private $email;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $address;
/**
* @ORM\Column(type="string", length=40, nullable=true)
* @Assert\Length(min=8,minMessage = "La taille minimum doit être de {{ limit }} caractères")
*/
private $telephone;
/**
* @ORM\OneToMany(targetEntity=PieceFormateurFourni::class, mappedBy="formateur", cascade={"persist"})
*/
private $pieceFormateurFournis;
/**
* @ORM\OneToMany(targetEntity=DiplomeFormateur::class, mappedBy="formateur", orphanRemoval=true, cascade={"persist"})
*/
private $diplomeFormateurs;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $datenaissance;
/**
* @ORM\Column(type="string", length=255)
*/
private $lieunaissance;
/**
* @ORM\Column(type="string", length=255,nullable=true)
*/
private $numerosecuritesociale;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $specialisation;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $titre;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $qualite;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $experience;
/**
* @ORM\OneToMany(targetEntity=FactureFormateur::class, mappedBy="formateur")
*/
private $factureFormateurs;
/**
* @ORM\OneToMany(targetEntity=Emargement::class, mappedBy="formateur")
*/
private $emargements;
/**
* @ORM\OneToMany(targetEntity=FicheSuivieStagiaireTfpaps::class, mappedBy="formateur")
*/
private $ficheSuivieStagiaireTfpaps;
/**
* @ORM\OneToMany(targetEntity=FicheSuivieStagiaireCqpDssp::class, mappedBy="formateur")
*/
private $ficheSuivieStagiaireCqpDssps;
public function __construct()
{
$this->pieceFormateurFournis = new ArrayCollection();
$this->diplomeFormateurs = new ArrayCollection();
$this->sessions = new ArrayCollection();
$this->factureFormateurs = new ArrayCollection();
$this->emargements = new ArrayCollection();
$this->ficheSuivieStagiaireTfpaps = new ArrayCollection();
$this->ficheSuivieStagiaireCqpDssps = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getFirstname(): ?string
{
return $this->firstname;
}
public function setFirstname(string $firstname): self
{
$this->firstname = $firstname;
return $this;
}
public function getLastname(): ?string
{
return $this->lastname;
}
public function setLastname(string $lastname): self
{
$this->lastname = $lastname;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(string $email): self
{
$this->email = $email;
return $this;
}
public function getAddress(): ?string
{
return $this->address;
}
public function setAddress(?string $address): self
{
$this->address = $address;
return $this;
}
public function getTelephone(): ?string
{
return $this->telephone;
}
public function setTelephone(?string $telephone): self
{
$this->telephone = $telephone;
return $this;
}
/**
* @return Collection<int, PieceFormateurFourni>
*/
public function getPieceFormateurFournis(): Collection
{
return $this->pieceFormateurFournis;
}
public function addPieceFormateurFourni(PieceFormateurFourni $pieceFormateurFourni): self
{
if (!$this->pieceFormateurFournis->contains($pieceFormateurFourni)) {
$this->pieceFormateurFournis[] = $pieceFormateurFourni;
$pieceFormateurFourni->setFormateur($this);
}
return $this;
}
public function removePieceFormateurFourni(PieceFormateurFourni $pieceFormateurFourni): self
{
if ($this->pieceFormateurFournis->removeElement($pieceFormateurFourni)) {
// set the owning side to null (unless already changed)
if ($pieceFormateurFourni->getFormateur() === $this) {
$pieceFormateurFourni->setFormateur(null);
}
}
return $this;
}
/**
* @return Collection<int, DiplomeFormateur>
*/
public function getDiplomeFormateurs(): Collection
{
return $this->diplomeFormateurs;
}
public function addDiplomeFormateur(DiplomeFormateur $diplomeFormateur): self
{
if (!$this->diplomeFormateurs->contains($diplomeFormateur)) {
$this->diplomeFormateurs[] = $diplomeFormateur;
$diplomeFormateur->setFormateur($this);
}
return $this;
}
public function removeDiplomeFormateur(DiplomeFormateur $diplomeFormateur): self
{
if ($this->diplomeFormateurs->removeElement($diplomeFormateur)) {
// set the owning side to null (unless already changed)
if ($diplomeFormateur->getFormateur() === $this) {
$diplomeFormateur->setFormateur(null);
}
}
return $this;
}
public function getDatenaissance(): ?\DateTimeInterface
{
return $this->datenaissance;
}
public function setDatenaissance(?\DateTimeInterface $datenaissance): self
{
$this->datenaissance = $datenaissance;
return $this;
}
public function getLieunaissance(): ?string
{
return $this->lieunaissance;
}
public function setLieunaissance(string $lieunaissance): self
{
$this->lieunaissance = $lieunaissance;
return $this;
}
public function getNumerosecuritesociale(): ?string
{
return $this->numerosecuritesociale;
}
public function setNumerosecuritesociale(string $numerosecuritesociale): self
{
$this->numerosecuritesociale = $numerosecuritesociale;
return $this;
}
public function getSpecialisation(): ?string
{
return $this->specialisation;
}
public function setSpecialisation(?string $specialisation): self
{
$this->specialisation = $specialisation;
return $this;
}
public function getTitre(): ?string
{
return $this->titre;
}
public function setTitre(?string $titre): self
{
$this->titre = $titre;
return $this;
}
public function getQualite(): ?string
{
return $this->qualite;
}
public function setQualite(?string $qualite): self
{
$this->qualite = $qualite;
return $this;
}
public function getExperience(): ?string
{
return $this->experience;
}
public function setExperience(?string $experience): self
{
$this->experience = $experience;
return $this;
}
/**
* @return Collection<int, FactureFormateur>
*/
public function getFactureFormateurs(): Collection
{
return $this->factureFormateurs;
}
public function addFactureFormateur(FactureFormateur $factureFormateur): self
{
if (!$this->factureFormateurs->contains($factureFormateur)) {
$this->factureFormateurs[] = $factureFormateur;
$factureFormateur->setFormateur($this);
}
return $this;
}
public function removeFactureFormateur(FactureFormateur $factureFormateur): self
{
if ($this->factureFormateurs->removeElement($factureFormateur)) {
// set the owning side to null (unless already changed)
if ($factureFormateur->getFormateur() === $this) {
$factureFormateur->setFormateur(null);
}
}
return $this;
}
public function getSessions(FormateurRepository $formateurRepository)
{
return $formateurRepository->getFormateurSessions($this->getId());
}
/**
* @return Collection<int, Emargement>
*/
public function getEmargements(): Collection
{
return $this->emargements;
}
public function addEmargement(Emargement $emargement): self
{
if (!$this->emargements->contains($emargement)) {
$this->emargements[] = $emargement;
$emargement->setFormateur($this);
}
return $this;
}
public function removeEmargement(Emargement $emargement): self
{
if ($this->emargements->removeElement($emargement)) {
// set the owning side to null (unless already changed)
if ($emargement->getFormateur() === $this) {
$emargement->setFormateur(null);
}
}
return $this;
}
/**
* @return Collection<int, FicheSuivieStagiaireTfpaps>
*/
public function getFicheSuivieStagiaireTfpaps(): Collection
{
return $this->ficheSuivieStagiaireTfpaps;
}
public function addFicheSuivieStagiaireTfpap(FicheSuivieStagiaireTfpaps $ficheSuivieStagiaireTfpap): self
{
if (!$this->ficheSuivieStagiaireTfpaps->contains($ficheSuivieStagiaireTfpap)) {
$this->ficheSuivieStagiaireTfpaps[] = $ficheSuivieStagiaireTfpap;
$ficheSuivieStagiaireTfpap->setFormateur($this);
}
return $this;
}
public function removeFicheSuivieStagiaireTfpap(FicheSuivieStagiaireTfpaps $ficheSuivieStagiaireTfpap): self
{
if ($this->ficheSuivieStagiaireTfpaps->removeElement($ficheSuivieStagiaireTfpap)) {
// set the owning side to null (unless already changed)
if ($ficheSuivieStagiaireTfpap->getFormateur() === $this) {
$ficheSuivieStagiaireTfpap->setFormateur(null);
}
}
return $this;
}
/**
* @return Collection<int, FicheSuivieStagiaireCqpDssp>
*/
public function getFicheSuivieStagiaireCqpDssps(): Collection
{
return $this->ficheSuivieStagiaireCqpDssps;
}
public function addFicheSuivieStagiaireCqpDssp(FicheSuivieStagiaireCqpDssp $ficheSuivieStagiaireCqpDssp): self
{
if (!$this->ficheSuivieStagiaireCqpDssps->contains($ficheSuivieStagiaireCqpDssp)) {
$this->ficheSuivieStagiaireCqpDssps[] = $ficheSuivieStagiaireCqpDssp;
$ficheSuivieStagiaireCqpDssp->setFormateur($this);
}
return $this;
}
public function removeFicheSuivieStagiaireCqpDssp(FicheSuivieStagiaireCqpDssp $ficheSuivieStagiaireCqpDssp): self
{
if ($this->ficheSuivieStagiaireCqpDssps->removeElement($ficheSuivieStagiaireCqpDssp)) {
// set the owning side to null (unless already changed)
if ($ficheSuivieStagiaireCqpDssp->getFormateur() === $this) {
$ficheSuivieStagiaireCqpDssp->setFormateur(null);
}
}
return $this;
}
}