src/Entity/Utilisateur.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\UtilisateurRepository;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  6. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  7. use Symfony\Component\Security\Core\User\UserInterface;
  8. /**
  9.  * @Description 
  10.  * la validation de email unique est geré par un custom validator, UN EMAIL existe  deja n'est pas bloquant si modeutilisateur < > "inscrit"            
  11.  */
  12. /**
  13.  * @ORM\Entity(repositoryClass=UtilisateurRepository::class)
  14.  * @ORM\Table(name="fusacq_dbo.utilisateurs")
  15.  */
  16. class Utilisateur implements UserInterfacePasswordAuthenticatedUserInterface {
  17.     public const MODE_UTILISATEUR_INSCRIT 'inscrit';
  18.     public const MODE_UTILISATEUR_PROSPECT 'prospect';
  19.     public const MODE_UTILISATEUR_SUPPRIME 'supprime';
  20.     public const MODE_UTILISATEUR_DEMANDE_INSCRIPTION 'demande_inscription';
  21.     public const INSCRIPTION_VALIDE_OUI 'oui';
  22.     public const INSCRIPTION_VALIDE_NON 'non';
  23.     public const TYPE_UTILISATEUR = [
  24.         'repreneur' => "Repreneur (personne physique)",
  25.         'acquereur' => 'Acquéreur (société)',
  26.         'cedant' => 'Cédant',
  27.         'autre' => 'Autre',
  28.         'investisseur' => 'Investisseur',
  29.         'franchiseur' => 'Franchiseur',
  30.         'expert' => 'Expert'
  31.     ];
  32.     public const CONNEXION_KEY 'email_utilisateur';
  33.     public const USER_ID 'id_utilisateur';
  34.     /**
  35.      * @var int
  36.      * 
  37.      * @ORM\Id
  38.      * @ORM\GeneratedValue(strategy="AUTO")
  39.      * @ORM\Column(type="integer", name="id_utilisateur")
  40.      */
  41.     public $id_utilisateur;
  42.     /**
  43.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="login_utilisateur"  )
  44.      */
  45.     public $login_utilisateur;
  46.     /**
  47.      * @var string @ORM\Column(type="string",length=255, nullable=true, name="password_encrypted_utilisateur"  )
  48.      */
  49.     public $password;
  50.     /**
  51.      * @ORM\Column(type="boolean")
  52.      */
  53.     private $isVerified false;
  54.     /**
  55.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="mode_utilisateur"  )
  56.      */
  57.     public $mode_utilisateur;
  58.     /**
  59.      * @var string @ORM\Column(type="integer", nullable=true, name="type_abonnement"  )
  60.      */
  61.     public $type_abonnement;
  62.     /**
  63.      * @var string @ORM\Column(type="string",length=20, nullable=true, name="date_demande_inscription"  )
  64.      */
  65.     public $date_demande_inscription;
  66.     /**
  67.      * @var string @ORM\Column(type="string", nullable=true, name="date_demande_inscription_complete"  )
  68.      */
  69.     public $date_demande_inscription_complete;
  70.     /**
  71.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="date_relance"  )
  72.      */
  73.     public $date_relance;
  74.     /**
  75.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="date_inscription_reelle"  )
  76.      */
  77.     public $date_inscription_reelle;
  78.     /**
  79.      * @var string @ORM\Column(type="string",length=10, nullable=true, name="langue_utilisee"  )
  80.      */
  81.     public $langue_utilisee;
  82.     /**
  83.      * @var string @ORM\Column(type="string",length=30, nullable=true, name="type_utilisateur"  )
  84.      */
  85.     public $type_utilisateur;
  86.     /**
  87.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="nom_utilisateur"  )
  88.      */
  89.     public $nom_utilisateur;
  90.     /**
  91.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="prenom_utilisateur"  )
  92.      */
  93.     public $prenom_utilisateur;
  94.     /**
  95.      * @var string @ORM\Column(type="string",length=100, nullable=true, name="email_utilisateur"  )
  96.      */
  97.     public $email_utilisateur;
  98.     /**
  99.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="societe_utilisateur"  )
  100.      */
  101.     public $societe_utilisateur;
  102.     /**
  103.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="rcs_utilisateur"  )
  104.      */
  105.     public $rcs_utilisateur;
  106.     /**
  107.      * @var string @ORM\Column(type="string",length=10, nullable=true, name="relance_mail_utilisateur"  )
  108.      */
  109.     public $relance_mail_utilisateur;
  110.     /**
  111.      * @var string @ORM\Column(type="string",length=10, nullable=true, name="pieces_necessaires"  )
  112.      */
  113.     public $pieces_necessaires;
  114.     /**
  115.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="pays_utilisateur"  )
  116.      */
  117.     public $pays_utilisateur;
  118.     /**
  119.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="region_utilisateur"  )
  120.      */
  121.     public $region_utilisateur;
  122.     /**
  123.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="ville_utilisateur"  )
  124.      */
  125.     public $ville_utilisateur;
  126.     /**
  127.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="code_postal_utilisateur"  )
  128.      */
  129.     public $code_postal_utilisateur;
  130.     /**
  131.      * @var string @ORM\Column(type="string",length=100, nullable=true, name="adresse_utilisateur"  )
  132.      */
  133.     public $adresse_utilisateur;
  134.     /**
  135.      * @var string @ORM\Column(type="string", nullable=true, name="commentaire_utilisateur"  )
  136.      */
  137.     public $commentaire_utilisateur;
  138.     /**
  139.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="litige_utilisateur"  )
  140.      */
  141.     public $litige_utilisateur;
  142.     /**
  143.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="compte_facturation"  )
  144.      */
  145.     public $compte_facturation;
  146.     /**
  147.      * @var string @ORM\Column(type="string",length=100, nullable=true, name="factur_nom_societe"  )
  148.      */
  149.     public $factur_nom_societe;
  150.     /**
  151.      * @var string @ORM\Column(type="string",length=100, nullable=true, name="factur_adresse"  )
  152.      */
  153.     public $factur_adresse;
  154.     /**
  155.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="factur_code_postal"  )
  156.      */
  157.     public $factur_code_postal;
  158.     /**
  159.      * @var string @ORM\Column(type="string",length=200, nullable=true, name="factur_ville"  )
  160.      */
  161.     public $factur_ville;
  162.     /**
  163.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="factur_pays"  )
  164.      */
  165.     public $factur_pays;
  166.     /**
  167.      * @var string @ORM\Column(type="string",length=5, nullable=true, name="factur_id_pays"  )
  168.      */
  169.     public $factur_id_pays;
  170.     /**
  171.      * @var string @ORM\Column(type="string",length=10, nullable=true, name="id_type_structure"  )
  172.      */
  173.     public $id_type_structure;
  174.     /**
  175.      * @var string @ORM\Column(type="string",length=150, nullable=true, name="telephone_utilisateur"  )
  176.      */
  177.     public $telephone_utilisateur;
  178.     /**
  179.      * @var string @ORM\Column(type="string",length=20, nullable=true, name="indicatif_tel"  )
  180.      */
  181.     public $indicatif_tel;
  182.     /**
  183.      * @var string @ORM\Column(type="integer", nullable=true, name="id_structure"  )
  184.      */
  185.     public $id_structure;
  186.     /**
  187.      * @var string @ORM\Column(type="integer", nullable=true, name="id_gestionnaire_fonds"  )
  188.      */
  189.     public $id_gestionnaire_fonds;
  190.     /**
  191.      * @var string @ORM\Column(type="string",length=255, nullable=true, name="fonction_utilisateur"  )
  192.      */
  193.     public $fonction_utilisateur;
  194.     /**
  195.      * @var string @ORM\Column(type="string",length=255, nullable=true, name="lien_internet"  )
  196.      */
  197.     public $lien_internet;
  198.     /**
  199.      * @var string @ORM\Column(type="string",length=255, nullable=true, name="tva_intracommunautaire"  )
  200.      */
  201.     public $tva_intracommunautaire;
  202.     /**
  203.      * @var string @ORM\Column(type="integer", nullable=true, name="id_client_publicite"  )
  204.      */
  205.     public $id_client_publicite;
  206.     /**
  207.      * @var string @ORM\Column(type="string",length=30, nullable=true, name="inscription_partenaire"  )
  208.      */
  209.     public $inscription_partenaire;
  210.     /**
  211.      * @var string @ORM\Column(type="string",length=20, nullable=true, name="site_partenaire"  )
  212.      */
  213.     public $site_partenaire;
  214.     /**
  215.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="provenance_connexion_fusacq"  )
  216.      */
  217.     public $provenance_connexion_fusacq;
  218.     /**
  219.      * @var string @ORM\Column(type="string", nullable=true, name="suivi"  )
  220.      */
  221.     public $suivi;
  222.     /**
  223.      * @var string @ORM\Column(type="string",length=10, nullable=true, name="date_derniere_connexion"  )
  224.      */
  225.     public $date_derniere_connexion;
  226.     /**
  227.      * @var string @ORM\Column(type="string",length=10, nullable=true, name="date_desinscription_fusacq"  )
  228.      */
  229.     public $date_desinscription_fusacq;
  230.     /**
  231.      * @var string @ORM\Column(type="string",length=45, nullable=true, name="type_commande"  )
  232.      */
  233.     public $type_commande;
  234.     /**
  235.      * @var string @ORM\Column(type="string",length=10, nullable=true, name="date_derniere_commande"  )
  236.      */
  237.     public $date_derniere_commande;
  238.     /**
  239.      * @var string @ORM\Column(type="string",length=10, nullable=true, name="date_dernier_depot_annonce"  )
  240.      */
  241.     public $date_dernier_depot_annonce;
  242.     /**
  243.      * @var string @ORM\Column(type="string",length=45, nullable=true, name="etat_relance"  )
  244.      */
  245.     public $etat_relance;
  246.     /**
  247.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="agence_utilisateur"  )
  248.      */
  249.     public $agence_utilisateur;
  250.     /**
  251.      * @var string @ORM\Column(type="string",length=200, nullable=true, name="cookie_authentification"  )
  252.      */
  253.     public $cookie_authentification;
  254.     /**
  255.      * @var string @ORM\Column(type="string",length=6, nullable=true, name="id_pays_utilisateur"  )
  256.      */
  257.     public $id_pays_utilisateur;
  258.     /**
  259.      * @var string @ORM\Column(type="string",length=10, nullable=true, name="id_region"  )
  260.      */
  261.     public $id_region;
  262.     /**
  263.      * @var string @ORM\Column(type="string",length=50, nullable=true, name="contact_suite_inscription"  )
  264.      */
  265.     public $contact_suite_inscription;
  266.     /**
  267.      * @var string @ORM\Column(type="integer", nullable=true, name="id_societe_prestataire"  )
  268.      */
  269.     public $id_societe_prestataire;
  270.     /**
  271.      * @var string @ORM\Column(type="integer", nullable=true, name="association_societe_prestataire"  )
  272.      */
  273.     public $association_societe_prestataire;
  274.     /**
  275.      * @var string @ORM\Column(type="string",length=145, nullable=true, name="mail_note_qualite_mer"  )
  276.      */
  277.     public $mail_note_qualite_mer;
  278.     /**
  279.      * @var string @ORM\Column(type="string",length=45, nullable=true, name="provenance_notoriete_fusacq"  )
  280.      */
  281.     public $provenance_notoriete_fusacq;
  282.     /**
  283.      * @var string @ORM\Column(type="integer", nullable=true, name="id_reseau_commerce"  )
  284.      */
  285.     public $id_reseau_commerce;
  286.     /**
  287.      * @var string @ORM\Column(type="decimal", nullable=true, name="montant_contact_defaut"  )
  288.      */
  289.     public $montant_contact_defaut;
  290.     /**
  291.      * @var string @ORM\Column(type="decimal", nullable=true, name="montant_contact_international_defaut"  )
  292.      */
  293.     public $montant_contact_international_defaut;
  294.     /**
  295.      * @var string @ORM\Column(type="string",length=45, nullable=true, name="type_utilisateur_commerce"  )
  296.      */
  297.     public $type_utilisateur_commerce;
  298.     /**
  299.      * @var string @ORM\Column(type="integer", nullable=true, name="annee_naissance"  )
  300.      */
  301.     public $annee_naissance;
  302.     /**
  303.      * @var string @ORM\Column(type="string",length=45, nullable=true, name="civilite"  )
  304.      */
  305.     public $civilite;
  306.     /**
  307.      * @var string @ORM\Column(type="string",length=3, nullable=true, name="inscription_validee"  )
  308.      */
  309.     public $inscription_validee;
  310.     /**
  311.      * @var string @ORM\Column(type="string",length=45, nullable=true, name="plateforme_inscription"  )
  312.      */
  313.     public $plateforme_inscription;
  314.     /**
  315.      * @var string @ORM\Column(type="string",length=45, nullable=true, name="frequence_envoi_alertes_commerces"  )
  316.      */
  317.     public $frequence_envoi_alertes_commerces;
  318.     /**
  319.      * @var string @ORM\Column(type="string", nullable=true, name="date_dernier_envoi_alerte_commerces"  )
  320.      */
  321.     public $date_dernier_envoi_alerte_commerces;
  322.     /**
  323.      * @var string @ORM\Column(type="string",length=45, nullable=true, name="mode_reglement_commerce"  )
  324.      */
  325.     public $mode_reglement_commerce;
  326.     /**
  327.      * @var string @ORM\Column(type="integer", nullable=true, name="id_agence_commerce"  )
  328.      */
  329.     public $id_agence_commerce;
  330.     /**
  331.      * @var string @ORM\Column(type="string",length=45, nullable=true, name="provenance_connexion_commerces"  )
  332.      */
  333.     public $provenance_connexion_commerces;
  334.     /**
  335.      * @var string @ORM\Column(type="string", nullable=true, name="importer_annonces_pdc_sur_ce_compte"  )
  336.      */
  337.     public $importer_annonces_pdc_sur_ce_compte;
  338.     /**
  339.      * @var string @ORM\Column(type="string",length=3, nullable=true, name="email_invalide"  )
  340.      */
  341.     public $email_invalide;
  342.     /**
  343.      * @var string @ORM\Column(type="string",length=45, nullable=true, name="personne_societe"  )
  344.      */
  345.     public $personne_societe;
  346.     /**
  347.      * @var string @ORM\Column(type="string",length=45, nullable=true, name="type_utilisateur_franchise"  )
  348.      */
  349.     public $type_utilisateur_franchise;
  350.     /**
  351.      * @var string @ORM\Column(type="string",length=45, nullable=true, name="mode_reglement_franchise"  )
  352.      */
  353.     public $mode_reglement_franchise;
  354.     /**
  355.      * @var string @ORM\Column(type="decimal", nullable=true, name="montant_cv_defaut"  )
  356.      */
  357.     public $montant_cv_defaut;
  358.     /**
  359.      * @var string @ORM\Column(type="decimal", nullable=true, name="montant_cv_international_defaut"  )
  360.      */
  361.     public $montant_cv_international_defaut;
  362.     /**
  363.      * @var string @ORM\Column(type="integer", nullable=true, name="id_cv"  )
  364.      */
  365.     public $id_cv;
  366.     /**
  367.      * @var string @ORM\Column(type="string",length=200, nullable=true, name="telephone_utilisateur_back"  )
  368.      */
  369.     public $telephone_utilisateur_back;
  370.     /**
  371.      * @var string @ORM\Column(type="string",length=100, nullable=true, name="site_derniere_connexion"  )
  372.      */
  373.     public $site_derniere_connexion;
  374.     /**
  375.      * @var string @ORM\Column(type="string",length=45, nullable=true, name="date_derniere_notification_propose_cv_pdc"
  376.      *       )
  377.      */
  378.     public $date_derniere_notification_propose_cv_pdc;
  379.     /**
  380.      * @var string @ORM\Column(type="string",length=3, nullable=true, name="devise"  )
  381.      */
  382.     public $devise;
  383.     /**
  384.      * @var string @ORM\Column(type="string",length=10, nullable=true, name="id_pays_tarif_applicable"  )
  385.      */
  386.     public $id_pays_tarif_applicable;
  387.     /**
  388.      * @var string @ORM\Column(type="string", nullable=false, name="identifiant_entreprise"  )
  389.      */
  390.     public $identifiant_entreprise;
  391.     /**
  392.      * @var string @ORM\Column(type="boolean", nullable=false, name="non_assujetti_tva"  )
  393.      */
  394.     public $non_assujetti_tva;
  395.     public function setEmail(string $email): self {
  396.         $this->email_utilisateur $email;
  397.         return $this;
  398.     }
  399.     /**
  400.      * A visual identifier that represents this user.
  401.      *
  402.      * @see UserInterface
  403.      */
  404.     public function getUserIdentifier(): string {
  405.         return (string) $this->email_utilisateur;
  406.     }
  407.     #[ORM\Column(type: 'json')]
  408.     private $roles = [];
  409.     /**
  410.      * @see UserInterface
  411.      */
  412.     public function getRoles(): array {
  413.         $roles $this->roles;
  414.         // guarantee every user at least has ROLE_USER
  415.         $roles[] = 'ROLE_USER';
  416.         return array_unique($roles);
  417.     }
  418.     public function setRoles(array $roles): self {
  419.         $this->roles $roles;
  420.         return $this;
  421.     }
  422.     /**
  423.      * Returns the password used to authenticate the user.
  424.      * This should be the encoded password. On authentication, a plain-text
  425.      * password will be salted, encoded, and then compared to this value.
  426.      * @return string|null The encoded password if any
  427.      */
  428.     public function getPassword(): ?string {
  429.         return $this->password;
  430.     }
  431.     public function setPassword(string $password): self {
  432.         $this->password $password;
  433.         return $this;
  434.     }
  435.     /**
  436.      * Returning a salt is only needed, if you are not using a modern
  437.      * hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.
  438.      *
  439.      * @see UserInterface
  440.      */
  441.     public function getSalt(): ?string {
  442.         return null;
  443.     }
  444.     /**
  445.      * @see UserInterface
  446.      */
  447.     public function eraseCredentials() {
  448.         // If you store any temporary, sensitive data on the user, clear it here
  449.         // $this->plainPassword = null;
  450.     }
  451.     public function isVerified(): bool {
  452.         return $this->isVerified;
  453.     }
  454.     public function setIsVerified(bool $isVerified): self {
  455.         $this->isVerified $isVerified;
  456.         return $this;
  457.     }
  458.     public function getId() {
  459.         return $this->id_utilisateur;
  460.     }
  461.     public function getIdUtilisateur() {
  462.         return $this->id_utilisateur;
  463.     }
  464.     /**
  465.      * Returns the username used to authenticate the user.
  466.      * @return string The username
  467.      */
  468.     public function getEmail() {
  469.         return $this->email_utilisateur;
  470.     }
  471.     /**
  472.      * @return int[]|string[]
  473.      */
  474.     public function getAttribute() {
  475.         return array_keys(get_class_vars(get_class($this)));
  476.     }
  477.     /**
  478.      * Magic setter to save public properties.
  479.      * @param string $property
  480.      * @param mixed  $value
  481.      */
  482.     public function _get($property) {
  483.         return $this->$property;
  484.     }
  485.     /**
  486.      * Magic getter to expose public properties.
  487.      * @param string $property
  488.      * @return mixed
  489.      */
  490.     public function _set($property$value) {
  491.         $this->$property $value;
  492.     }
  493.     public function setPasswordEncryptedUtilisateur(string $password_encrypted_utilisateur) {
  494.         $this->password $password_encrypted_utilisateur;
  495.     }
  496.     /**
  497.      * Returns the username used to authenticate the user.
  498.      * @return string The username
  499.      */
  500.     public function getUsername() {
  501.         return $this->_get("login_utilisateur");
  502.     }
  503.     public function getLogin() {
  504.         return $this->_get("login_utilisateur");
  505.     }
  506. }