<?php
namespace App\Entity;
use App\Repository\SiteRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
use Serializable;
/**
* @ORM\Entity(repositoryClass=SiteRepository::class)
* @Vich\Uploadable
* @UniqueEntity(
* fields={"email"},
* message="Ce mail est déjà utilisé."
* )
* @UniqueEntity(fields={"telephone"},message="Ce téléphone est déjà utilisé." )
* @UniqueEntity(fields={"wording"},message="Ce nom est déjà utilisé." )
*/
class Site implements Serializable
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="text")
*/
private $wording;
/**
* @ORM\Column(type="text")
*/
private $address;
/**
* @ORM\Column(type="string", length=255,nullable=true)
* @Assert\Email(message = "L'email '{{ value }}' n'est pas valide.")
*/
private $email;
/**
* @ORM\Column(type="string", length=40)
* @Assert\Length(min=10,minMessage = "La taille minimum doit être de {{ limit }} caractères")
*/
private $telephone;
/**
* @ORM\Column(type="text")
*/
private $director;
/**
* @ORM\OneToMany(targetEntity=Session::class, mappedBy="site", orphanRemoval=true)
*/
private $sessions;
/**
* @Doctrine\ORM\Mapping\Column(type="string", length=255, nullable=true)
*/
private $image;
/**
* @Vich\UploadableField(mapping="cachet_site", fileNameProperty="image")
*/
private $fichier;
/**
* @Doctrine\ORM\Mapping\Column(type="string", length=255, nullable=true)
*/
private $imageCachet;
/**
* @Vich\UploadableField(mapping="cachet_site", fileNameProperty="imageCachet")
*/
private $fichierCachet;
/**
* @ORM\Column(type="string", length=255)
*/
private $titre;
/**
* @ORM\Column(type="string", length=1)
*/
private $sexe;
/**
* @Doctrine\ORM\Mapping\Column(type="string", length=255, nullable=true)
*/
private $map;
/**
* @Vich\UploadableField(mapping="signature_site", fileNameProperty="map")
*/
private $fichiermap;
/**
* @ORM\Column(type="datetime_immutable", nullable=true)
*/
private $updateAt;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $departement;
/**
* @ORM\OneToMany(targetEntity=User::class, mappedBy="site")
*/
private $users;
/**
* @ORM\OneToMany(targetEntity=CalendarEvent::class, mappedBy="site")
*/
private $calendarEvents;
/**
* @ORM\OneToMany(targetEntity=Diplome::class, mappedBy="site")
*/
private $diplomes;
/**
* @ORM\OneToMany(targetEntity=Inscrit::class, mappedBy="site")
*/
private $inscrits;
/**
* @ORM\OneToMany(targetEntity=Message::class, mappedBy="site")
*/
private $messages;
/**
* @Doctrine\ORM\Mapping\Column(type="string", length=255, nullable=true)
*/
private $cachetSignature;
/**
* @Vich\UploadableField(mapping="signature_site_cachet", fileNameProperty="cachetSignature")
*/
private $fichiCachetSignature;
/**
* @ORM\OneToMany(targetEntity=EnteteFacture::class, mappedBy="site")
*/
private $enteteFactures;
/**
* @ORM\OneToMany(targetEntity=EnteteDevis::class, mappedBy="site")
*/
private $enteteDevis;
/**
* @ORM\OneToMany(targetEntity=DemandeDevisEntete::class, mappedBy="site")
*/
private $demandeDevisEntetes;
/**
* @ORM\OneToMany(targetEntity=DemandePro::class, mappedBy="site")
*/
private $demandePros;
public function __construct()
{
$this->sessions = new ArrayCollection();
$this->users = new ArrayCollection();
$this->calendarEvents = new ArrayCollection();
$this->diplomes = new ArrayCollection();
$this->inscrits = new ArrayCollection();
$this->messages = new ArrayCollection();
$this->enteteFactures = new ArrayCollection();
$this->enteteDevis = new ArrayCollection();
$this->demandeDevisEntetes = new ArrayCollection();
$this->demandePros = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getWording(): ?string
{
return $this->wording;
}
public function setWording(string $wording): self
{
$this->wording = $wording;
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;
}
public function getDirector(): ?string
{
return $this->director;
}
public function setDirector(string $director): self
{
$this->director = $director;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(string $email): self
{
$this->email = $email;
return $this;
}
/**
* @return Collection<int, Session>
*/
public function getSessions(): Collection
{
return $this->sessions;
}
public function addSession(Session $session): self
{
if (!$this->sessions->contains($session)) {
$this->sessions[] = $session;
$session->setSite($this);
}
return $this;
}
public function removeSession(Session $session): self
{
if ($this->sessions->removeElement($session)) {
// set the owning side to null (unless already changed)
if ($session->getSite() === $this) {
$session->setSite(null);
}
}
return $this;
}
public function setFichier(?File $image = null)
{
$this->fichier = $image;
if ($image) {
$this->updateAt = new \DateTimeImmutable();
}
}
public function getFichier()
{
return $this->fichier;
}
public function setImage($image)
{
$this->image = $image;
}
public function getImage()
{
return $this->image;
}
public function setFichierMap(?File $imageCachet = null)
{
$this->fichiermap = $imageCachet;
if ($imageCachet) {
$this->updateAt = new \DateTimeImmutable();
}
}
public function getFichierMap()
{
return $this->fichiermap;
}
public function setMap($image)
{
$this->map = $image;
}
public function getMap()
{
return $this->map;
}
public function getTitre(): ?string
{
return $this->titre;
}
public function setTitre(string $titre): self
{
$this->titre = $titre;
return $this;
}
public function getSexe(): ?string
{
return $this->sexe;
}
public function setSexe(string $sexe): self
{
$this->sexe = $sexe;
return $this;
}
public function setFichierCachet(?File $imageCachet = null)
{
$this->fichierCachet = $imageCachet;
if ($imageCachet) {
$this->updateAt = new \DateTimeImmutable();
}
}
public function getFichierCachet()
{
return $this->fichierCachet;
}
public function setImageCachet($image)
{
$this->imageCachet = $image;
}
public function getImageCachet()
{
return $this->imageCachet;
}
public function getUpdateAt(): ?\DateTimeImmutable
{
return $this->updateAt;
}
public function setUpdateAt(?\DateTimeImmutable $updateAt): self
{
$this->updateAt = $updateAt;
return $this;
}
public function getDepartement(): ?string
{
return $this->departement;
}
public function setDepartement(?string $departement): self
{
$this->departement = $departement;
return $this;
}
/**
* @return Collection<int, User>
*/
public function getUsers(): Collection
{
return $this->users;
}
public function addUser(User $user): self
{
if (!$this->users->contains($user)) {
$this->users[] = $user;
$user->setSite($this);
}
return $this;
}
public function removeUser(User $user): self
{
if ($this->users->removeElement($user)) {
// set the owning side to null (unless already changed)
if ($user->getSite() === $this) {
$user->setSite(null);
}
}
return $this;
}
/**
* @return Collection<int, CalendarEvent>
*/
public function getCalendarEvents(): Collection
{
return $this->calendarEvents;
}
public function addCalendarEvent(CalendarEvent $calendarEvent): self
{
if (!$this->calendarEvents->contains($calendarEvent)) {
$this->calendarEvents[] = $calendarEvent;
$calendarEvent->setSite($this);
}
return $this;
}
public function removeCalendarEvent(CalendarEvent $calendarEvent): self
{
if ($this->calendarEvents->removeElement($calendarEvent)) {
// set the owning side to null (unless already changed)
if ($calendarEvent->getSite() === $this) {
$calendarEvent->setSite(null);
}
}
return $this;
}
/**
* @return Collection<int, Diplome>
*/
public function getDiplomes(): Collection
{
return $this->diplomes;
}
public function addDiplome(Diplome $diplome): self
{
if (!$this->diplomes->contains($diplome)) {
$this->diplomes[] = $diplome;
$diplome->setSite($this);
}
return $this;
}
public function removeDiplome(Diplome $diplome): self
{
if ($this->diplomes->removeElement($diplome)) {
// set the owning side to null (unless already changed)
if ($diplome->getSite() === $this) {
$diplome->setSite(null);
}
}
return $this;
}
/**
* @return Collection<int, Inscrit>
*/
public function getInscrits(): Collection
{
return $this->inscrits;
}
public function addInscrit(Inscrit $inscrit): self
{
if (!$this->inscrits->contains($inscrit)) {
$this->inscrits[] = $inscrit;
$inscrit->setSite($this);
}
return $this;
}
public function removeInscrit(Inscrit $inscrit): self
{
if ($this->inscrits->removeElement($inscrit)) {
// set the owning side to null (unless already changed)
if ($inscrit->getSite() === $this) {
$inscrit->setSite(null);
}
}
return $this;
}
/**
* @return Collection<int, Message>
*/
public function getMessages(): Collection
{
return $this->messages;
}
public function addMessage(Message $message): self
{
if (!$this->messages->contains($message)) {
$this->messages[] = $message;
$message->setSite($this);
}
return $this;
}
public function removeMessage(Message $message): self
{
if ($this->messages->removeElement($message)) {
// set the owning side to null (unless already changed)
if ($message->getSite() === $this) {
$message->setSite(null);
}
}
return $this;
}
public function setFichiCachetSignature(?File $imageCachet = null)
{
$this->fichiCachetSignature = $imageCachet;
if ($imageCachet) {
$this->updateAt = new \DateTimeImmutable();
}
}
public function getFichiCachetSignature()
{
return $this->fichiCachetSignature;
}
public function setCachetSignature($image)
{
$this->cachetSignature = $image;
}
public function getCachetSignature()
{
return $this->cachetSignature;
}
/**
* @return Collection<int, EnteteFacture>
*/
public function getEnteteFactures(): Collection
{
return $this->enteteFactures;
}
public function addEnteteFacture(EnteteFacture $enteteFacture): self
{
if (!$this->enteteFactures->contains($enteteFacture)) {
$this->enteteFactures[] = $enteteFacture;
$enteteFacture->setSite($this);
}
return $this;
}
public function removeEnteteFacture(EnteteFacture $enteteFacture): self
{
if ($this->enteteFactures->removeElement($enteteFacture)) {
// set the owning side to null (unless already changed)
if ($enteteFacture->getSite() === $this) {
$enteteFacture->setSite(null);
}
}
return $this;
}
/**
* @return Collection<int, EnteteDevis>
*/
public function getEnteteDevis(): Collection
{
return $this->enteteDevis;
}
public function addEnteteDevi(EnteteDevis $enteteDevi): self
{
if (!$this->enteteDevis->contains($enteteDevi)) {
$this->enteteDevis[] = $enteteDevi;
$enteteDevi->setSite($this);
}
return $this;
}
public function removeEnteteDevi(EnteteDevis $enteteDevi): self
{
if ($this->enteteDevis->removeElement($enteteDevi)) {
// set the owning side to null (unless already changed)
if ($enteteDevi->getSite() === $this) {
$enteteDevi->setSite(null);
}
}
return $this;
}
/**
* @return Collection<int, DemandeDevisEntete>
*/
public function getDemandeDevisEntetes(): Collection
{
return $this->demandeDevisEntetes;
}
public function addDemandeDevisEntetes(DemandeDevisEntete $demandeDevisEntetes): self
{
if (!$this->demandeDevisEntetes->contains($demandeDevisEntetes)) {
$this->demandeDevisEntetes[] = $demandeDevisEntetes;
$demandeDevisEntetes->setSite($this);
}
return $this;
}
public function removeDemandeDevisEntetes(DemandeDevisEntete $demandeDevisEntetes): self
{
if ($this->demandeDevisEntetes->removeElement($demandeDevisEntetes)) {
// set the owning side to null (unless already changed)
if ($demandeDevisEntetes->getSite() === $this) {
$demandeDevisEntetes->setSite(null);
}
}
return $this;
}
public function serialize()
{
$this->fichier = base64_encode($this->fichier);
$this->fichierCachet = base64_encode($this->fichierCachet);
$this->fichiermap = base64_encode($this->fichiermap);
$this->fichiCachetSignature = base64_encode($this->fichiCachetSignature);
}
public function unserialize($serialized)
{
$this->fichier = base64_decode($this->fichier);
$this->fichierCachet = base64_decode($this->fichierCachet);
$this->fichiermap = base64_decode($this->fichiermap);
$this->fichiCachetSignature = base64_decode($this->fichiCachetSignature);
}
/**
* @return Collection<int, DemandePro>
*/
public function getDemandePros(): Collection
{
return $this->demandePros;
}
public function addDemandePro(DemandePro $demandePro): self
{
if (!$this->demandePros->contains($demandePro)) {
$this->demandePros[] = $demandePro;
$demandePro->setSite($this);
}
return $this;
}
public function removeDemandePro(DemandePro $demandePro): self
{
if ($this->demandePros->removeElement($demandePro)) {
// set the owning side to null (unless already changed)
if ($demandePro->getSite() === $this) {
$demandePro->setSite(null);
}
}
return $this;
}
}