src/Entity/Collaborateur.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\TimestampableTrait;
  4. use App\Repository\CollaborateurRepository;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Symfony\Component\Validator\Constraints as Assert;
  9. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  10. /**
  11.  * @ORM\Entity(repositoryClass=CollaborateurRepository::class)
  12.  */
  13. class Collaborateur
  14. {
  15.     /**
  16.      * @ORM\Id
  17.      * @ORM\GeneratedValue
  18.      * @ORM\Column(type="integer")
  19.      */
  20.     private $id;
  21.     /**
  22.      * @ORM\ManyToMany(targetEntity=Transporteur::class, mappedBy="collaborateurs")
  23.      */
  24.     private $transporteurs;
  25.     /**
  26.      * @ORM\OneToOne(targetEntity=User::class, inversedBy="collaborateur", cascade={"remove"})
  27.      * @ORM\JoinColumn(nullable=true)
  28.      */
  29.     private $user;
  30.     /**
  31.      * @ORM\OneToOne(targetEntity=Client::class, inversedBy="collaborateurAccount")
  32.      * @ORM\JoinColumn(nullable=true)
  33.      */
  34.     private $client;
  35.     /**
  36.      * @ORM\Column(type="string", length=255)
  37.      */
  38.     private $carteId;
  39.     /**
  40.      * @ORM\Column(type="string", length=255)
  41.      */
  42.     private $registrationNumber;
  43.     /**
  44.      * @ORM\Column(type="string", length=255, nullable=true)
  45.      */
  46.     private $carteVitale;
  47.     /**
  48.      * @ORM\Column(type="string", length=255)
  49.      */
  50.     private $nationality;
  51.     /**
  52.      * @ORM\Column(type="string", length=255)
  53.      */
  54.     private $familySituation;
  55.     /**
  56.      * @ORM\Column(type="boolean")
  57.      */
  58.     private $functionType false;
  59.     /**
  60.      * @ORM\Column(type="string", length=255, nullable=true)
  61.      */
  62.     private $service;
  63.     /**
  64.      * @ORM\ManyToOne(targetEntity=Park::class, inversedBy="collaborateurs")
  65.      */
  66.     private $park;
  67.     /**
  68.      * @ORM\Column(type="string", length=255, nullable=true)
  69.      */
  70.     private $salaireBrute;
  71.     /**
  72.      * @ORM\Column(type="string", length=255)
  73.      */
  74.     private $horaires;
  75.     /**
  76.      * @ORM\Column(type="string", length=255, nullable=true)
  77.      */
  78.     private $hourlyRate;
  79.     /**
  80.      * @ORM\Column(type="string", length=255, nullable=true)
  81.      */
  82.     private $contractType;
  83.     /**
  84.      * @ORM\Column(type="date", nullable=true)
  85.      */
  86.     private $employementStart;
  87.     /**
  88.      * @ORM\Column(type="array")
  89.      */
  90.     private $language = [];
  91.     /**
  92.      * @ORM\Column(type="string", length=255, nullable=true)
  93.      */
  94.     private $cover;
  95.     /**
  96.      * @Assert\Image(maxSize="2M")
  97.      */
  98.     private $fileCover;
  99.     /**
  100.      * @ORM\ManyToOne(targetEntity=Fonction::class, inversedBy="collaborateurs")
  101.      */
  102.     private $fonction;
  103.     /**
  104.      * @ORM\Column(type="string", length=255, nullable=true)
  105.      */
  106.     private $token;
  107.     /**
  108.      * @ORM\Column(type="string", length=255, nullable=true)
  109.      */
  110.     private $confirmationToken;
  111.     /**
  112.      * @ORM\Column(type="string", length=255, nullable=true)
  113.      */
  114.     private $expirationToken;
  115.     /**
  116.      * @ORM\Column(type="boolean")
  117.      */
  118.     private $agreeTerms;
  119.     /**
  120.      * @ORM\Column(type="string", length=3)
  121.      */
  122.     private $code;
  123.     public function __construct()
  124.     {
  125.         $this->token $this->strToken(15);
  126.         $this->transporteurs = new ArrayCollection();
  127.     }
  128.     public function StrToken($length)
  129.     {
  130.       $alpha "0123456789azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN-_";
  131.       return substr(str_shuffle(str_repeat($alpha$length)), 0$length);
  132.     }
  133.     public function getId(): ?int
  134.     {
  135.         return $this->id;
  136.     }
  137.     /**
  138.      * @return Collection<int, Transporteur>
  139.      */
  140.     public function getTransporteurs(): Collection
  141.     {
  142.         return $this->transporteurs;
  143.     }
  144.     public function addTransporteur(Transporteur $transporteur): self
  145.     {
  146.         if (!$this->transporteurs->contains($transporteur)) {
  147.             $this->transporteurs[] = $transporteur;
  148.             $transporteur->addCollaborateur($this);
  149.         }
  150.         return $this;
  151.     }
  152.     public function removeTransporteur(Transporteur $transporteur): self
  153.     {
  154.         if ($this->transporteurs->removeElement($transporteur)) {
  155.             $transporteur->removeCollaborateur($this);
  156.         }
  157.         return $this;
  158.     }
  159.     public function getUser(): ?User
  160.     {
  161.         return $this->user;
  162.     }
  163.     public function setUser(?User $user): self
  164.     {
  165.         $this->user $user;
  166.         return $this;
  167.     }    
  168.     public function getClient(): ?Client
  169.     {
  170.         return $this->client;
  171.     }
  172.     public function setClient(?Client $client): self
  173.     {
  174.         $this->client $client;
  175.         return $this;
  176.     }
  177.     public function getCarteId(): ?string
  178.     {
  179.         return $this->carteId;
  180.     }
  181.     public function setCarteId(string $carteId): self
  182.     {
  183.         $this->carteId $carteId;
  184.         return $this;
  185.     }
  186.     public function getRegistrationNumber(): ?string
  187.     {
  188.         return $this->registrationNumber;
  189.     }
  190.     public function setRegistrationNumber(string $registrationNumber): self
  191.     {
  192.         $this->registrationNumber $registrationNumber;
  193.         return $this;
  194.     }
  195.     public function getCarteVitale(): ?string
  196.     {
  197.         return $this->carteVitale;
  198.     }
  199.     public function setCarteVitale(?string $carteVitale): self
  200.     {
  201.         $this->carteVitale $carteVitale;
  202.         return $this;
  203.     }
  204.     public function getNationality(): ?string
  205.     {
  206.         return $this->nationality;
  207.     }
  208.     public function setNationality(string $nationality): self
  209.     {
  210.         $this->nationality $nationality;
  211.         return $this;
  212.     }
  213.     public function getFamilySituation(): ?string
  214.     {
  215.         return $this->familySituation;
  216.     }
  217.     public function setFamilySituation(string $familySituation): self
  218.     {
  219.         $this->familySituation $familySituation;
  220.         return $this;
  221.     }
  222.     public function isFunctionType(): ?bool
  223.     {
  224.         return $this->functionType;
  225.     }
  226.     public function setFunctionType(bool $functionType): self
  227.     {
  228.         $this->functionType $functionType;
  229.         return $this;
  230.     }
  231.     public function getService(): ?string
  232.     {
  233.         return $this->service;
  234.     }
  235.     public function setService(?string $service): self
  236.     {
  237.         $this->service $service;
  238.         return $this;
  239.     }
  240.     public function getPark(): ?Park
  241.     {
  242.         return $this->park;
  243.     }
  244.     public function setPark(?Park $park): self
  245.     {
  246.         $this->park $park;
  247.         return $this;
  248.     }
  249.     public function getSalaireBrute(): ?string
  250.     {
  251.         return $this->salaireBrute;
  252.     }
  253.     public function setSalaireBrute(?string $salaireBrute): self
  254.     {
  255.         $this->salaireBrute $salaireBrute;
  256.         return $this;
  257.     }
  258.     public function getHoraires(): ?string
  259.     {
  260.         return $this->horaires;
  261.     }
  262.     public function setHoraires(string $horaires): self
  263.     {
  264.         $this->horaires $horaires;
  265.         return $this;
  266.     }
  267.     public function getHourlyRate(): ?string
  268.     {
  269.         return $this->hourlyRate;
  270.     }
  271.     public function setHourlyRate(?string $hourlyRate): self
  272.     {
  273.         $this->hourlyRate $hourlyRate;
  274.         return $this;
  275.     }
  276.     public function getContractType(): ?string
  277.     {
  278.         return $this->contractType;
  279.     }
  280.     public function setContractType(?string $contractType): self
  281.     {
  282.         $this->contractType $contractType;
  283.         return $this;
  284.     }
  285.     public function getEmployementStart(): ?\DateTimeInterface
  286.     {
  287.         return $this->employementStart;
  288.     }
  289.     public function setEmployementStart(?\DateTimeInterface $employementStart): self
  290.     {
  291.         $this->employementStart $employementStart;
  292.         return $this;
  293.     }
  294.     public function getLanguage(): ?array
  295.     {
  296.         return $this->language;
  297.     }
  298.     public function setLanguage(array $language): self
  299.     {
  300.         $this->language $language;
  301.         return $this;
  302.     }
  303.     public function getCover(): ?string
  304.     {
  305.         return $this->cover;
  306.     }
  307.     public function setCover(?string $cover): self
  308.     {
  309.         $this->cover $cover;
  310.         return $this;
  311.     }
  312.     public function getFileCover()
  313.     {
  314.         return $this->fileCover;
  315.     }
  316.     public function setFileCover($fileCover)
  317.     {
  318.         $this->fileCover $fileCover;
  319.         return $this;
  320.     }
  321.     public function getFonction(): ?Fonction
  322.     {
  323.         return $this->fonction;
  324.     }
  325.     public function setFonction(?Fonction $fonction): self
  326.     {
  327.         $this->fonction $fonction;
  328.         return $this;
  329.     }
  330.     public function getToken(): ?string
  331.     {
  332.         return $this->token;
  333.     }
  334.     public function setToken(?string $token): self
  335.     {
  336.         $this->token $token;
  337.         return $this;
  338.     }
  339.     public function getConfirmationToken(): ?string
  340.     {
  341.         return $this->confirmationToken;
  342.     }
  343.     public function setConfirmationToken(?string $confirmationToken): self
  344.     {
  345.         $this->confirmationToken $confirmationToken;
  346.         return $this;
  347.     }
  348.     public function getExpirationToken(): ?string
  349.     {
  350.         return $this->expirationToken;
  351.     }
  352.     public function setExpirationToken(?string $expirationToken): self
  353.     {
  354.         $this->expirationToken $expirationToken;
  355.         return $this;
  356.     }
  357.     public function isAgreeTerms(): ?bool
  358.     {
  359.         return $this->agreeTerms;
  360.     }
  361.     public function setAgreeTerms(bool $agreeTerms): self
  362.     {
  363.         $this->agreeTerms $agreeTerms;
  364.         return $this;
  365.     }
  366.     public function getCode(): ?string
  367.     {
  368.         return $this->code;
  369.     }
  370.     public function setCode(string $code): self
  371.     {
  372.         $this->code $code;
  373.         return $this;
  374.     }
  375. }