<?php
namespace App\Entity\Formulaire;
use App\Application\Sonata\MediaBundle\Entity\Media;
use App\Entity\Boutique\Produit;
use App\Entity\Boutique\ProduitDeclinaison;
use App\Entity\User\User;
use App\Entity\EntityBase;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass="App\Repository\Formulaire\ContactRepository")
* @ORM\HasLifecycleCallbacks()
* @ORM\Table(indexes={
* @ORM\Index(name="traite", columns={"traite"})
* })
*/
class Contact extends EntityBase
{
const OBJET_COMMANDE = 'Suivi de commande';
const OBJET_REFERENCEMENT = 'Référencement';
const OBJET_AUTRE = 'Demandes diverses';
public static $objetChoice = [
self::OBJET_COMMANDE => 'Suivi de commande',
self::OBJET_REFERENCEMENT => 'Référencement',
self::OBJET_AUTRE => 'Demandes diverses',
];
const FORM_CONTACT = 'Contact';
const FORM_NEWSLETTER = 'Newsletter';
const FORM_TOMBOLA = 'Tombola';
const FORM_BREIZH_DEVENIR_ADHERENT = 'BreizhDevenirAdherent';
const FORM_BREIZH_DEVENIR_PARTENAIRE = 'BreizhDevenirPartenaire';
const FORM_TAMTAM_ADHESION_CARTE = 'TamtamAdhesionCarte';
const FORM_TAMTAM_PARTENAIRE_CARTE = 'TamtamPartenaireCarte';
const FORM_TAMTAM_ASSOCIE_CARTE = 'TamtamAssocieCarte';
const FORM_TAMTAM_AMBASSADEUR_CARTE = 'TamtamAmbassadeurCarte';
const FORM_CSE = 'Cse';
const FORM_MESSAGERIE = 'Messagerie';
const FORM_PRODUIT = 'Produit';
public static $formulaireChoice = [
self::FORM_CONTACT => 'Formulaire de contact',
self::FORM_NEWSLETTER => 'Inscription à la newsletter',
self::FORM_TOMBOLA => 'Inscription à la tombola',
self::FORM_BREIZH_DEVENIR_ADHERENT => 'Devenir adhérent Breizh CE',
self::FORM_BREIZH_DEVENIR_PARTENAIRE => 'Devenir partenaire Breizh CE',
self::FORM_TAMTAM_ADHESION_CARTE => 'Adhésion carte TAM TAM ICE',
self::FORM_TAMTAM_PARTENAIRE_CARTE => 'Devenir partenaire de la carte TAM TAM ICE',
self::FORM_TAMTAM_ASSOCIE_CARTE => 'Devenir associé de la carte TAM TAM ICE',
self::FORM_TAMTAM_AMBASSADEUR_CARTE => 'Devenir ambassadeur de la carte TAM TAM ICE',
self::FORM_CSE => 'Formulaire CSE',
self::FORM_MESSAGERIE => 'Formulaire de messagerie',
self::FORM_PRODUIT => 'Formulaire fiche produit',
];
public static $formulaireChoiceTamtam = [
self::FORM_CONTACT => 'Formulaire de contact',
self::FORM_NEWSLETTER => 'Inscription à la newsletter',
self::FORM_TOMBOLA => 'Inscription à la tombola',
self::FORM_TAMTAM_ADHESION_CARTE => 'Adhésion carte TAM TAM ICE',
self::FORM_TAMTAM_PARTENAIRE_CARTE => 'Devenir partenaire de la carte TAM TAM ICE',
self::FORM_TAMTAM_ASSOCIE_CARTE => 'Devenir associé de la carte TAM TAM ICE',
self::FORM_TAMTAM_AMBASSADEUR_CARTE => 'Devenir ambassadeur de la carte TAM TAM ICE',
self::FORM_CSE => 'Formulaire CSE',
self::FORM_PRODUIT => 'Formulaire fiche produit',
];
public static $formulaireChoicePrestatime = [
self::FORM_CONTACT => 'Formulaire de contact',
self::FORM_MESSAGERIE => 'Formulaire de messagerie',
self::FORM_NEWSLETTER => 'Inscription à la newsletter',
self::FORM_TOMBOLA => 'Inscription à la tombola',
self::FORM_CSE => 'Formulaire CSE',
self::FORM_PRODUIT => 'Formulaire fiche produit',
];
public static $formulaireChoiceBreizhce = [
self::FORM_CONTACT => 'Formulaire de contact',
self::FORM_NEWSLETTER => 'Inscription à la newsletter',
self::FORM_BREIZH_DEVENIR_ADHERENT => 'Devenir adhérent Breizh CE',
self::FORM_BREIZH_DEVENIR_PARTENAIRE => 'Devenir partenaire Breizh CE',
self::FORM_CSE => 'Formulaire CSE',
self::FORM_PRODUIT => 'Formulaire fiche produit',
];
public static $formulaireChoiceHorizonce = [
self::FORM_CONTACT => 'Formulaire de contact',
self::FORM_NEWSLETTER => 'Inscription à la newsletter',
self::FORM_CSE => 'Formulaire CSE',
self::FORM_PRODUIT => 'Formulaire fiche produit',
];
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string")
* @Assert\NotBlank()
*/
private $formulaire;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User\User", inversedBy="contacts")
* @ORM\JoinColumn(nullable=true)
* @Assert\NotBlank(groups={"messagerie"})
*/
private $user;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Boutique\Produit", inversedBy="contacts")
* @ORM\JoinColumn(nullable=true)
* @Assert\NotBlank(groups={"produit"})
*/
private $produit;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Boutique\ProduitDeclinaison", inversedBy="contacts")
* @ORM\JoinColumn(nullable=true)
*/
private $produitDeclinaison;
/**
* @ORM\Column(type="integer", nullable=true)
* @Assert\NotBlank(groups={"contact"})
* @Assert\Choice({ User::CIVILITE_MR, User::CIVILITE_MME, User::CIVILITE_MLLE })
*/
private $civilite;
/**
* @ORM\ManyToOne(targetEntity="App\Application\Sonata\MediaBundle\Entity\Media", cascade={"persist"})
* @ORM\JoinColumn(name="fichier1_id", nullable=true, onDelete="SET NULL")
*/
private $fichier1;
/**
* @ORM\ManyToOne(targetEntity="App\Application\Sonata\MediaBundle\Entity\Media", cascade={"persist"})
* @ORM\JoinColumn(name="fichier2_id", nullable=true, onDelete="SET NULL")
*/
private $fichier2;
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\NotBlank(groups={
* "contact",
* "tombola",
* "tamtamAdhesionCarte",
* "tamtamAmbassadeurCarte",
* "tamtamAssocieCarte",
* "tamtamPartenaireCarte",
* "breizhDevenirPartenaire",
* "breizhDevenirAdherent",
* "cse",
* "produit"
* })
*/
private $nom;
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\NotBlank(groups={
* "contact",
* "tombola",
* "tamtamAdhesionCarte",
* "tamtamAmbassadeurCarte",
* "tamtamAssocieCarte",
* "tamtamPartenaireCarte",
* "breizhDevenirPartenaire",
* "breizhDevenirAdherent",
* "cse",
* "produit"
* })
*/
private $prenom;
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\NotBlank(groups={
* "tamtamAdhesionCarte",
* "tamtamAssocieCarte",
* "tamtamAmbassadeurCarte",
* "breizhDevenirPartenaire",
* "breizhDevenirAdherent"
* })
*/
private $fonction;
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\NotBlank(groups={
* "tamtamAmbassadeurCarte",
* "breizhDevenirPartenaire",
* "breizhDevenirAdherent",
* })
*/
private $societe;
/**
* @ORM\Column(type="string")
* @Assert\Email()
*/
private $email;
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\NotBlank(groups={"contact","produit"})
*/
private $telephone;
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\NotBlank(groups={
* "tamtamAmbassadeurCarte",
* "breizhDevenirPartenaire",
* "breizhDevenirAdherent"
* })
*/
private $adresse;
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\NotBlank(groups={"breizhDevenirPartenaire","breizhDevenirAdherent"})
*/
private $codePostal;
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\NotBlank(groups={"breizhDevenirPartenaire","breizhDevenirAdherent"})
*/
private $ville;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $objet;
/**
* @ORM\Column(type="text", nullable=true)
* @Assert\NotBlank(groups={
* "contact",
* "messagerie",
* "tamtamAdhesionCarte",
* "tamtamAmbassadeurCarte",
* "tamtamAssocieCarte",
* "tamtamPartenaireCarte",
* "breizhDevenirPartenaire",
* "breizhDevenirAdherent",
* "cse",
* "produit"
* })
*/
private $message;
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\NotBlank(groups={"tamtamAdhesionCarte","breizhDevenirAdherent"})
*/
private $nbSalaries;
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\NotBlank(groups={"tamtamPartenaireCarte"})
*/
private $boutique;
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\NotBlank(groups={"tamtamPartenaireCarte"})
*/
private $secteur;
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\NotBlank(groups={
* "tamtamAmbassadeurCarte",
* "tamtamAssocieCarte",
* "breizhDevenirAdherent"
* })
*/
private $disponibilite;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $nomParticipants;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $prenomParticipants;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $ageParticipants;
/**
* @ORM\Column(type="boolean")
*/
private $traite;
public function __construct()
{
$this->traite = false;
}
public function __toString()
{
return !empty($this->nom) ? $this->prenom.' '.$this->nom : '';
}
public function getCiviliteLabel() {
if (!empty($this->civilite) && isset(User::$civiliteChoice[$this->civilite])) {
return User::$civiliteChoice[$this->civilite];
}
return null;
}
public function getFormulaireLabel() {
if (!empty($this->formulaire) && isset(self::$formulaireChoice[$this->formulaire])) {
return self::$formulaireChoice[$this->formulaire];
}
return null;
}
public function getObjetLabel() {
if (!empty($this->objet) && isset(self::$objetChoice[$this->objet])) {
return self::$objetChoice[$this->objet];
}
return $this->objet;
}
public function getId(): ?int
{
return $this->id;
}
public function getFormulaire(): ?string
{
return $this->formulaire;
}
public function setFormulaire(string $formulaire): self
{
$this->formulaire = $formulaire;
return $this;
}
public function getCivilite(): ?int
{
return $this->civilite;
}
public function setCivilite(?int $civilite): self
{
$this->civilite = $civilite;
return $this;
}
public function getNom(): ?string
{
return $this->nom;
}
public function setNom(?string $nom): self
{
$this->nom = $nom;
return $this;
}
public function getPrenom(): ?string
{
return $this->prenom;
}
public function setPrenom(?string $prenom): self
{
$this->prenom = $prenom;
return $this;
}
public function getFonction(): ?string
{
return $this->fonction;
}
public function setFonction(?string $fonction): self
{
$this->fonction = $fonction;
return $this;
}
public function getSociete(): ?string
{
return $this->societe;
}
public function setSociete(?string $societe): self
{
$this->societe = $societe;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(string $email): self
{
$this->email = $email;
return $this;
}
public function getTelephone(): ?string
{
return $this->telephone;
}
public function setTelephone(?string $telephone): self
{
$this->telephone = $telephone;
return $this;
}
public function getAdresse(): ?string
{
return $this->adresse;
}
public function setAdresse(?string $adresse): self
{
$this->adresse = $adresse;
return $this;
}
public function getCodePostal(): ?string
{
return $this->codePostal;
}
public function setCodePostal(?string $codePostal): self
{
$this->codePostal = $codePostal;
return $this;
}
public function getVille(): ?string
{
return $this->ville;
}
public function setVille(?string $ville): self
{
$this->ville = $ville;
return $this;
}
public function getObjet(): ?string
{
return $this->objet;
}
public function setObjet(?string $objet): self
{
$this->objet = $objet;
return $this;
}
public function getMessage(): ?string
{
return $this->message;
}
public function setMessage(?string $message): self
{
$this->message = $message;
return $this;
}
public function getNbSalaries(): ?string
{
return $this->nbSalaries;
}
public function setNbSalaries(?string $nbSalaries): self
{
$this->nbSalaries = $nbSalaries;
return $this;
}
public function getBoutique(): ?string
{
return $this->boutique;
}
public function setBoutique(?string $boutique): self
{
$this->boutique = $boutique;
return $this;
}
public function getSecteur(): ?string
{
return $this->secteur;
}
public function setSecteur(?string $secteur): self
{
$this->secteur = $secteur;
return $this;
}
public function getDisponibilite(): ?string
{
return $this->disponibilite;
}
public function setDisponibilite(?string $disponibilite): self
{
$this->disponibilite = $disponibilite;
return $this;
}
public function getNomParticipants(): ?string
{
return $this->nomParticipants;
}
public function setNomParticipants(?string $nomParticipants): self
{
$this->nomParticipants = $nomParticipants;
return $this;
}
public function getPrenomParticipants(): ?string
{
return $this->prenomParticipants;
}
public function setPrenomParticipants(?string $prenomParticipants): self
{
$this->prenomParticipants = $prenomParticipants;
return $this;
}
public function getAgeParticipants(): ?string
{
return $this->ageParticipants;
}
public function setAgeParticipants(?string $ageParticipants): self
{
$this->ageParticipants = $ageParticipants;
return $this;
}
public function getTraite(): ?bool
{
return $this->traite;
}
public function setTraite(bool $traite): self
{
$this->traite = $traite;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
public function getProduit(): ?Produit
{
return $this->produit;
}
public function setProduit(?Produit $produit): self
{
$this->produit = $produit;
return $this;
}
public function getProduitDeclinaison(): ?ProduitDeclinaison
{
return $this->produitDeclinaison;
}
public function setProduitDeclinaison(?ProduitDeclinaison $produitDeclinaison): self
{
$this->produitDeclinaison = $produitDeclinaison;
return $this;
}
public function getFichier1(): ?Media
{
return $this->fichier1;
}
public function setFichier1(?Media $fichier1): self
{
$this->fichier1 = $fichier1;
return $this;
}
public function getFichier2(): ?Media
{
return $this->fichier2;
}
public function setFichier2(?Media $fichier2): self
{
$this->fichier2 = $fichier2;
return $this;
}
}