<?php
namespace App\Entity;
use App\Repository\UserRepository;
use App\Validator\Constraints as AcmeAssert;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Rollerworks\Component\PasswordStrength\Validator\Constraints as RollerworksPassword;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Validator\Constraints as Assert;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @method string getUserIdentifier()
* @Vich\Uploadable
*/
#[ORM\Entity(repositoryClass: UserRepository::class)]
#[ORM\Table(name: 'user')]
#[UniqueEntity('email', message: "L'adresse e-mail est déjà utilisée.")]
class User implements UserInterface, PasswordAuthenticatedUserInterface
{
public const ROLE_DEFAULT = 'ROLE_INCOMPLETE_USER';
public const ROLE_SUPER_ADMIN = 'ROLE_SUPER_ADMIN';
public $expressStep;
public $expressComplaintPrice;
#[ORM\Column(name: "id", type: "integer")]
#[ORM\Id]
#[ORM\GeneratedValue(strategy: "AUTO")]
private ?int $id;
#[ORM\Column(type: 'string', length: 64, unique: true)]
#[Assert\Email]
#[Assert\NotBlank(message: 'Ce champ est obligatoire')]
private string $email;
#[ORM\Column(type: 'string', length: 255)]
private string $password;
/**
* @var string
* @RollerworksPassword\PasswordRequirements(
* minLength=8,
* requireCaseDiff=true,
* requireNumbers=true,
* requireSpecialCharacter=true,
* tooShortMessage="Le mot de passe doit contenir au minimum {{length}} caractère.",
* missingLettersMessage="Le mot de passe doit contenir au moins une lettre.",
* requireCaseDiffMessage="Le mot de passe doit contenir au moins une lettre majuscule et une lettre minuscule.",
* missingNumbersMessage="Le mot de passe doit contenir au moins un chiffre.",
* missingSpecialCharacterMessage="Le mot de passe doit contenir au moins un caractère special (@#,.-_).",
* )
*/
private $plainPassword;
/**
* @var string
*/
#[ORM\Column(type: 'string', length: 255, nullable: true)]
#[Assert\NotBlank(message: 'Ce champ est obligatoire', groups: ['expressStep1', 'edit_info'])]
private $gmaps;
#[ORM\Column(type: 'array')]
private array $roles = [];
#[ORM\Column(type: 'boolean')]
private bool $hasAlreadyEditedAddresses = false;
#[ORM\Column(type: 'boolean')]
private bool $hasAlreadyEditedIdentityInfos = false;
#[ORM\Column(type: 'boolean')]
private bool $hasAlreadyEditedContactInfos = false;
#[ORM\Column(type: 'boolean')]
private bool $hasAlreadyEditedIdentityCard = false;
#[ORM\OneToMany(targetEntity: 'App\Entity\Search', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $searchs;
#[ORM\OneToMany(targetEntity: 'App\Entity\LossReport', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $lossReports;
#[ORM\OneToMany(targetEntity: 'App\Entity\ArchiveComplaint', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $archiveComplaints;
#[ORM\OneToMany(targetEntity: 'App\Entity\ItemsListComplaint', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $itemsListComplaints;
#[ORM\OneToMany(targetEntity: 'App\Entity\ItemsListBackup', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $itemsListBackups;
#[ORM\OneToMany(targetEntity: 'App\Entity\PaymentMethod', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $paymentMethods;
#[ORM\OneToMany(targetEntity: 'App\Entity\Vehicle', mappedBy: 'user', cascade: ['persist', 'remove'], orphanRemoval: true)]
private Collection|array $vehicles;
#[ORM\OneToMany(targetEntity: 'App\Entity\ComplaintX', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $complaintXs;
#[ORM\Column(type: 'boolean')]
private bool $firstLogin = true;
#[ORM\OneToMany(targetEntity: 'App\Entity\Address', mappedBy: 'user', cascade: ['persist', 'remove'])]
#[Assert\Valid()]
private Collection|array $addressUser;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $partnerName = null;
#[Assert\IsTrue(message: "Vous devez accepter les conditions")]
#[ORM\Column(type: 'boolean')]
private bool $hasAcceptedConditions;
#[Assert\NotBlank(message: 'Ce champ est obligatoire', groups: ['identityCard'])]
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $identityCardType =
null;
#[ORM\Column(type: 'text', nullable: true)]
private ?string $signature = null;
#[ORM\OneToMany(
targetEntity: 'App\Entity\InsuranceDisasterDeclaration',
mappedBy: 'user',
cascade: ['persist', 'remove']
)]
private Collection|array $insuranceDisasterDeclarations;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $stripeCustomerId = null;
#[ORM\OneToMany(targetEntity: 'App\Entity\Charge', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $charges;
#[ORM\OneToMany(targetEntity: 'App\Entity\DisasterDeclaration', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $disasterDeclarations;
#[ORM\OneToMany(targetEntity: 'App\Entity\FillingComplaint', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $fillingComplaints;
#[ORM\Column(type: 'boolean')]
private bool $suscribedToNewsletter = false;
#[ORM\Column(type: 'boolean')]
private bool $acceptPartnerProspecting = false;
#[ORM\OneToMany(mappedBy: 'user', targetEntity: Steal::class, cascade: ['persist', 'remove'])]
private Collection|array $steals;
#[ORM\OneToMany(targetEntity: 'App\Entity\QrCode', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $qrCodes;
#[ORM\OneToMany(targetEntity: 'App\Entity\GoodAssignement', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $goodAssignements;
#[ORM\OneToMany(targetEntity: 'App\Entity\GoodAssignement', mappedBy: 'buyer', cascade: ["persist", "remove"])]
private Collection|array $buyerGoodAssignements;
#[ORM\OneToMany(targetEntity: 'App\Entity\ComplaintLetter', mappedBy: 'user', cascade: ["persist", "remove"])]
private Collection|array $complaintLetters;
#[ORM\OneToMany(
targetEntity: 'App\Entity\Insurance',
mappedBy: 'user',
cascade: ['persist', 'remove'],
orphanRemoval: true
)]
private Collection|array $insurances;
#[ORM\OneToMany(targetEntity: 'App\Entity\Item', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $items;
#[ORM\OneToMany(targetEntity: 'App\Entity\Video', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $videos;
#[ORM\OneToMany(targetEntity: 'App\Entity\Document', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $documents;
#[Assert\Choice(callback: 'getPartnerTypes', multiple: false)]
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $partnerType = null;
#[ORM\OneToOne(targetEntity: 'App\Entity\User', inversedBy: 'partner')]
private ?User $partnerLead = null;
#[ORM\OneToOne(targetEntity: 'App\Entity\User', mappedBy: 'partnerLead')]
private ?User $partner = null;
#[ORM\Column(name: 'createdAt', type: 'datetime')]
private DateTime $createdAt;
/**
* @AcmeAssert\BirthDate
*/
#[Assert\NotBlank(message: 'Ce champ est obligatoire', groups: ['IdentityInfos', 'expressStep1', 'edit_info'])]
#[ORM\Column(name: 'birthDate', type: 'datetime', nullable: true)]
private ?DateTime $birthDate = null;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $birthCountry = null;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $birthCity = null;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $birthZipCode = null;
#[ORM\OneToMany(targetEntity: 'App\Entity\Child', mappedBy: 'user', cascade: ['persist', 'remove'])]
private Collection|array $children;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $birthDepartment = null;
#[Assert\NotBlank(message: 'Ce champ est obligatoire', groups: ['IdentityInfos', 'edit_info', 'expressStep2'])]
#[Assert\Choice(callback: 'getFamilySituations', multiple: false)]
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $familySituation = null;
#[Assert\NotBlank(message: 'Ce champ est obligatoire', groups: ['IdentityInfos', 'expressStep1', 'edit_info'])]
#[Assert\Choice(callback: 'getNationalities', multiple: false, groups: ['IdentityInfos', 'expressStep2'])]
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $nationality = null;
#[Assert\NotBlank(message: 'Ce champ est obligatoire', groups: ['IdentityInfos', 'expressStep2'])]
#[Assert\Choice(callback: 'getProfessions', multiple: false, groups: ['IdentityInfos', 'expressStep2'])]
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $profession = null;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $company;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $phoneNumberConfirmationCode;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $deleteCode;
#[Assert\NotBlank(message: 'Ce champ est obligatoire', groups: ['IdentityInfos'])]
#[Assert\Choice(callback: 'getCivilities', multiple: false)]
#[ORM\Column(type: 'string', length: 255)]
private ?string $civility = null;
// /**
// * @var string
// *
// * @Assert\Choice(callback = "getCivilities", multiple = false)
// * @ORM\Column(name="partnerCivility", type="string", length=255)
// */
// private $partnerCivility;
#[Assert\NotBlank(message: 'Ce champ est obligatoire', groups: ['', 'edit_info'])]
#[ORM\Column(type: 'string', length: 255)]
private ?string $lastName;
#[Assert\NotBlank(message: 'Ce champ est obligatoire', groups: ['', 'edit_info'])]
#[ORM\Column(type: 'string', length: 255)]
private ?string $firstName;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $promotionalCode;
/**
* @AcmeAssert\FrenchPhoneNumber
*/
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $fixPhoneNumber;
/**
* @AcmeAssert\FrenchPhoneNumber
*/
#[ORM\Column(type: 'string', length: 255, nullable: true)]
#[Assert\Regex(pattern: '/^0[6-7]([-. ]?[0-9]{2}){4}$/', message: 'Le numéro de mobile n\'est pas valide', match: true, groups: ['expressStep2'])]
private ?string $phoneNumber;
/**
* @AcmeAssert\IdentityCardPhoto(groups={"identityCard"})
*/
#[Assert\Valid(groups: ['identityCard'])]
#[ORM\OneToMany(targetEntity: IdentityCardPhoto::class, mappedBy: 'user', cascade: ["persist", "remove"])]
private Collection|array $identityCardPhotos;
#[Assert\NotBlank(message: 'Ce champ est obligatoire', groups: ['identityCard'])]
#[ORM\Column(type: 'datetime', nullable: true)]
private ?DateTime $identityCardExpirationDate;
#[ORM\Column(type: 'datetime', nullable: true)]
private ?DateTime $secondIdentityCardExpirationDate;
/**
* @Vich\UploadableField(mapping="user", fileNameProperty="pictureFileName", size="pictureFileSize")
*/
#[Assert\File(maxSize: '4M', groups: ['edit_info', 'edit_photo'])]
private ?File $pictureFile = null;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $pictureFileName = null;
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $pictureFileSize = null;
#[ORM\Column(type: 'datetime', nullable: true)]
private ?DateTime $pictureFileUpdatedAt = null;
/**
* NOTE: This is not a mapped field of entity metadata, just a simple property.
* @Vich\UploadableField(mapping="secondIdentityCard", fileNameProperty="secondIdentityCardFileName", size="secondIdentityCardFileSize")
*/
#[Assert\File(maxSize: '500k', groups: ['identityCard'])]
private ?File $secondIdentityCardFile = null;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $secondIdentityCardFileName;
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $secondIdentityCardFileSize;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $accountId;
#[ORM\Column(type: 'boolean')]
private bool $isBeginner = true;
#[ORM\Column(type: 'datetime', nullable: true)]
private ?DateTime $secondIdentityCardFileUpdatedAt;
#[ORM\Column(type: 'boolean')]
private bool $isVerified = false;
#[ORM\OneToMany(targetEntity: PartnerPending::class, mappedBy: 'partner', cascade: ["persist", "remove"])]
private Collection|array $partnerPendings;
#[ORM\OneToMany(targetEntity: ResetPasswordRequest::class, mappedBy: 'user', cascade: ["persist", "remove"])]
private Collection|array $resetPasswordRequests;
#[ORM\OneToOne(targetEntity: PartnerPending::class, mappedBy: 'userAccount', cascade: ["persist", "remove"])]
private ?PartnerPending $partnerPending;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $pendingNewEmail;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $validationToken;
public function __construct()
{
$this->createdAt = new DateTime();
$this->roles = [self::ROLE_DEFAULT];
$this->accountId = uniqid();
$this->phoneNumberConfirmationCode = rand(11111, 99999);
$this->partnerPendings = new ArrayCollection();
$this->searchs = new ArrayCollection();
$this->lossReports = new ArrayCollection();
$this->archiveComplaints = new ArrayCollection();
$this->itemsListComplaints = new ArrayCollection();
$this->itemsListBackups = new ArrayCollection();
$this->paymentMethods = new ArrayCollection();
$this->vehicles = new ArrayCollection();
$this->complaintXs = new ArrayCollection();
$this->addressUser = new ArrayCollection();
$this->insuranceDisasterDeclarations = new ArrayCollection();
$this->charges = new ArrayCollection();
$this->disasterDeclarations = new ArrayCollection();
$this->fillingComplaints = new ArrayCollection();
$this->steals = new ArrayCollection();
$this->qrCodes = new ArrayCollection();
$this->goodAssignements = new ArrayCollection();
$this->buyerGoodAssignements = new ArrayCollection();
$this->complaintLetters = new ArrayCollection();
$this->insurances = new ArrayCollection();
$this->items = new ArrayCollection();
$this->videos = new ArrayCollection();
$this->documents = new ArrayCollection();
$this->children = new ArrayCollection();
$this->identityCardPhotos = new ArrayCollection();
}
public static function getNationalities()
{
$arr = [
"Française",
"Afghane",
"Albanaise",
"Algérienne",
"Allemande",
"Américaine",
"Andorrane",
"Angolaise",
"Antiguaise-et-Barbudienne",
"Argentine",
"Arménienne",
"Australienne",
"Autrichienne",
"Azerbaïdjanaise",
"Bahamienne",
"Bahreinienne",
"Bangladaise",
"Barbadienne",
"Belge",
"Belizienne",
"Béninoise",
"Bhoutanaise",
"Biélorusse",
"Birmane",
"Bissau-Guinéenne",
"Bolivienne",
"Bosnienne",
"Botswanaise",
"Brésilienne",
"Britannique",
"Brunéienne",
"Bulgare",
"Burkinabée",
"Burundaise",
"Cambodgienne",
"Camerounaise",
"Canadienne",
"Cap-verdienne",
"Centrafricaine",
"Chilienne",
"Chinoise",
"Chypriote",
"Colombienne",
"Comorienne",
"Congolaise",
"Congolaise",
"Cookienne",
"Costaricaine",
"Croate",
"Cubaine",
"Danoise",
"Djiboutienne",
"Dominicaine",
"Dominiquaise",
"Égyptienne",
"Émirienne",
"Équato-guineenne",
"Équatorienne",
"Érythréenne",
"Espagnole",
"Est-timoraise",
"Estonienne",
"Éthiopienne",
"Fidjienne",
"Finlandaise",
"Gabonaise",
"Gambienne",
"Georgienne",
"Ghanéenne",
"Grenadienne",
"Guatémaltèque",
"Guinéenne",
"Guyanienne",
"Haïtienne",
"Hellénique",
"Hondurienne",
"Hongroise",
"Indienne",
"Indonésienne",
"Irakienne",
"Iranienne",
"Irlandaise",
"Islandaise",
"Israélienne",
"Italienne",
"Ivoirienne",
"Jamaïcaine",
"Japonaise",
"Jordanienne",
"Kazakhstanaise",
"Kenyane",
"Kirghize",
"Kiribatienne",
"Kittitienne et Névicienne",
"Koweïtienne",
"Laotienne",
"Lesothane",
"Lettone",
"Libanaise",
"Libérienne",
"Libyenne",
"Liechtensteinoise",
"Lituanienne",
"Luxembourgeoise",
"Macédonienne",
"Malaisienne",
"Malawienne",
"Maldivienne",
"Malgache",
"Maliennes",
"Maltaise",
"Marocaine",
"Marshallaise",
"Mauricienne",
"Mauritanienne",
"Mexicaine",
"Micronésienne",
"Moldave",
"Monegasque",
"Mongole",
"Monténégrine",
"Mozambicaine",
"Namibienne",
"Nauruane",
"Néerlandaise",
"Néo-Zélandaise",
"Népalaise",
"Nicaraguayenne",
"Nigériane",
"Nigérienne",
"Niuéenne",
"Nord-coréenne",
"Norvégienne",
"Omanaise",
"Ougandaise",
"Ouzbéke",
"Pakistanaise",
"Palaosienne",
"Palestinienne",
"Panaméenne",
"Papouane-Néo-Guinéenne",
"Paraguayenne",
"Péruvienne",
"Philippine",
"Polonaise",
"Portugaise",
"Qatarienne",
"Roumaine",
"Russe",
"Rwandaise",
"Saint--Lucienne",
"Saint--Marinaise",
"Saint-Vincentaise et Grenadine",
"Salomonaise",
"Salvadorienne",
"Samoane",
"Santoméenne",
"Saoudienne",
"Sénégalaise",
"Serbe",
"Seychelloise",
"Sierra-Léonaise",
"Singapourienne",
"Slovaque",
"Slovène",
"Somalienne",
"Soudanaise",
"Sri-Lankaise",
"Sud-Africaine",
"Sud-Coréenne",
"Sud-Soudanaise",
"Suédoise",
"Suisse",
"Surinamaise",
"Swazie",
"Syrienne",
"Tadjike",
"Tanzanienne",
"Tchadienne",
"Tchèque",
"Thaïlandaise",
"Togolaise",
"Tonguienne",
"Trinidadienne",
"Tunisienne",
"Turkmène",
"Turque",
"Tuvaluane",
"Ukrainienne",
"Uruguayenne",
"Vanuatuane",
"Vaticane",
"Vénézuélienne",
"Vietnamienne",
"Yéménite",
"Zambienne",
"Zimbabwéenne"
];
return array_combine($arr, $arr);
}
public static function getProfessions()
{
$arr = [
"Accessoiriste",
"Accompagnateur de voyage",
"Accordeur",
"Accoucheur",
"Acteur",
"Action sociale et culturelle",
"Acuponcteur",
"Adjoint administratif",
"Adjoint au maire",
"Adjudant",
"Adjudant chef",
"Administrateur civil",
"Administrateur de base de donnees",
"Administrateur de societe",
"Administrateur general",
"Administrateur judiciaire",
"Administrateur reseau",
"Administrateur systeme",
"Administrateur territorial",
"Administration gestion des entreprises",
"Affichiste",
"Affuteur",
"Agent administratif",
"Agent artistique",
"Agent charge d'accueil touristique",
"Agent commercial",
"Agent d'entretien",
"Agent d'exploitation des transports",
"Agent de change",
"Agent de collectivite territoriale",
"Agent de developpement touristique",
"Agent de la poste",
"Agent de la sante publique",
"Agent de maintenance",
"Agent de publicite",
"Agent de securite",
"Agent de securite du metro",
"Agent de service de la fonction publique",
"Agent de surveillance de la sncf",
"Agent de voyage",
"Agent france telecom",
"Agent general d'assurance",
"Agent immobilier",
"Agent ratp",
"Agent rtm",
"Agent sncf",
"Agent specialise police technique et scientifique",
"Agent tcl",
"Agent technique specialise des ecoles maternelles",
"Agriculteur",
"Agriculture eaux et forets",
"Agronome",
"Aide comptable",
"Aide cuisinier",
"Aide menager",
"Aide soignant",
"Ajusteur",
"Alcoologue",
"Alimentation restauration",
"Allergologue",
"Ambulancier",
"Amiral",
"Analyste programmeur",
"Anesthesiste",
"Angeiologue",
"Animateur",
"Animateur de mjc",
"Animateur de colonie de vacances",
"Animateur de grande surface",
"Animateur de parc de loisirs",
"Animateur de radio",
"Animateur de soirees",
"Animateur de television",
"Animateur socio culturel",
"Animateur sportif",
"Anthropologue",
"Antiquaire",
"Apiculteur",
"Appariteur",
"Apprenti",
"Apprenti cuisinier",
"Aquaculteur",
"Arbitre",
"Arboriculteur",
"Archeologue",
"Archeveque",
"Architecte",
"Architecte d'interieur",
"Architecte urbaniste",
"Ardoisier",
"Armateur",
"Armurier",
"Artificier",
"Artisan",
"Artisanat",
"Artiste de cirque",
"Artiste de variete",
"Artiste lyrique",
"Artiste peintre",
"Aspirant",
"Assistant administratif",
"Assistant de direction",
"Assistant dentaire",
"Assistant en communication",
"Assistant en publicite",
"Assistant export",
"Assistant familial",
"Assistant juridique",
"Assistant maternel",
"Assistant social",
"Assureur",
"Astrologue",
"Astronome",
"Athlete",
"Attache commercial",
"Attache de direction",
"Attache de police",
"Attache de presse",
"Attache territorial",
"Auditeur",
"Aumonier",
"Auteur",
"Auteur compositeur",
"Autre profession",
"Autres ministeres",
"Auxiliaire de vie",
"Auxiliaire familiale",
"Auxiliaire veterinaire",
"Aviculteur",
"Avocat",
"Avoue",
"Bacteriologiste",
"Bagagiste",
"Bailleur",
"Barman",
"Basketteur",
"Batelier",
"Batiment travaux publics",
"Berger",
"Bibliothecaire",
"Biochimiste",
"Biologiste",
"Blanchisseur",
"Bobineur",
"Bonnetier",
"Bonze",
"Botaniste",
"Bottier",
"Boucher",
"Boucher charcutier",
"Boulanger",
"Boulanger patissier",
"Bourrelier",
"Boxeur",
"Brancardier",
"Brasseur",
"Brigadier de police",
"Brocanteur",
"Bucheron",
"Buraliste",
"Cableur",
"Cadre",
"Cadreur",
"Caissier de magasin",
"Cameraman",
"Cancerologue",
"Cantonnier",
"Capitaine",
"Capitaine de corvette",
"Capitaine de fregate",
"Capitaine de vaisseau",
"Caporal",
"Caporal chef",
"Cardinal",
"Cardiologue",
"Cariste",
"Carreleur",
"Carrossier",
"Cartomancien",
"Casseur",
"Catcheur",
"Caviste",
"Censeur",
"Ceramiste",
"Cerealier",
"Champignonniste",
"Charbonnier",
"Charcutier traiteur",
"Charge d'etude marketing",
"Charge de clientele",
"Charge de communication",
"Charge de mission",
"Charpentier",
"Chasseur d'hôtel",
"Chaudronnier",
"Chaudronnier tolier",
"Chauffagiste",
"Chauffeur",
"Chauffeur de maitre",
"Chauffeur de taxi",
"Chauffeur demenageur",
"Chauffeur livreur",
"Chauffeur routier",
"Chef d'entreprise",
"Chef d'equipe",
"Chef d'escale",
"Chef d'etat",
"Chef de chantier",
"Chef de cuisine",
"Chef de fabrication",
"Chef de gare",
"Chef de partie",
"Chef de plateau",
"Chef de produit",
"Chef de projet informatique",
"Chef de rang",
"Chef de rayon",
"Chef de salle",
"Chef des ventes",
"Chef eclairagiste",
"Chef operateur",
"Chevrier",
"Chimiste",
"Chiropracteur",
"Chirurgien",
"Chocolatier",
"Chocolatier confiseur",
"Chomeur",
"Clerc d'huissier",
"Coffreur",
"Coiffeur",
"Collegien",
"Colonel",
"Colporteur",
"Commandant",
"Commandant de bord",
"Commercant",
"Commercant animalier",
"Commerce",
"Commercial",
"Commis d'agent de change",
"Commis de cuisine",
"Commissaire aux comptes",
"Commissaire de bord de la marine marchande",
"Commissaire de police",
"Commissaire priseur",
"Communication information",
"Comptable",
"Concessionnaire automobile",
"Conchyliculteur",
"Concierge",
"Conducteur d'engin",
"Conducteur d'offset",
"Conducteur de bus",
"Conducteur de metro",
"Conducteur de train",
"Conducteur de travaux",
"Confiseur",
"Conseil en entreprise",
"Conseil expertise",
"Conseiller a la cour de cassation",
"Conseiller a la cour des comptes",
"Conseiller agricole",
"Conseiller conjugal et familial",
"Conseiller d'etat",
"Conseiller d'insertion et de probation",
"Conseiller d'orientation",
"Conseiller en assurance",
"Conseiller en conditions de travail",
"Conseiller en developpement personnel",
"Conseiller en economie sociale et familiale",
"Conseiller en formation",
"Conseiller en recrutement",
"Conseiller en relations humaines",
"Conseiller en selection",
"Conseiller europeen",
"Conseiller financier",
"Conseiller fiscal",
"Conseiller general",
"Conseiller juridique",
"Conseiller juridique et fiscal",
"Conseiller matrimonial",
"Conseiller municipal",
"Conseiller pedagogique",
"Conseiller principal d'education",
"Conseiller prive",
"Conseiller regional",
"Conservateur du patrimoine",
"Contrat emploi solidarite",
"Contremaitre",
"Controleur aerien",
"Controleur de bus",
"Controleur de gestion",
"Controleur de la poste",
"Controleur de la repression des fraudes",
"Controleur de la sncf",
"Controleur de metro",
"Controleur des transports",
"Controleur du travail",
"Controleur financier",
"Controleur general de l'administration",
"Copiste",
"Cordier",
"Cordonnier",
"Correspondant de presse",
"Costumier",
"Coupeur",
"Coureur",
"Coureur automobile",
"Coureur cycliste",
"Coureur motocycliste",
"Coursier",
"Courtier en assurance",
"Courtier en bourse",
"Coutelier",
"Couturier",
"Couvreur",
"Couvreur zingueur",
"Cremier fromager",
"Crepier",
"Criminologue",
"Croupier",
"Cuisinier",
"Cuisinier de collectivite",
"Cultivateur",
"Cytologiste",
"Dactylo",
"Danseur",
"Debardeur",
"Debitant de boissons",
"Decorateur",
"Delegue juridique",
"Delegue medical",
"Demandeur d'emploi",
"Demarcheur",
"Demenageur",
"Demineur",
"Demographe",
"Dentiste",
"Depanneur",
"Depute",
"Depute europeen",
"Dermatologue",
"Dessinateur",
"Dessinateur industriel",
"Detective prive",
"Diabetologue",
"Diamantaire",
"Dieseliste",
"Dieteticien",
"Diplomate",
"Directeur",
"Directeur adjoint",
"Directeur artistique",
"Directeur comptable",
"Directeur d'aeroport",
"Directeur d'agence bancaire",
"Directeur d'agence d'interim",
"Directeur d'ecole",
"Directeur d'ecole de musique",
"Directeur d'edition",
"Directeur d'entreprise",
"Directeur d'equipements sportifs",
"Directeur d'etablissement de credit",
"Directeur d'etablissement sanitaire et social",
"Directeur d'hopital",
"Directeur d'hotel",
"Directeur d'hypermarche",
"Directeur d'office de tourisme",
"Directeur de cabaret",
"Directeur de chaine",
"Directeur de chorale",
"Directeur de cinema",
"Directeur de cirque",
"Directeur de clinique",
"Directeur de cooperative",
"Directeur de creche",
"Directeur de galerie d'exposition",
"Directeur de journal",
"Directeur de l'administration penitentiaire",
"Directeur de la communication",
"Directeur de magasin",
"Directeur de maison des jeunes et de la culture",
"Directeur de restauration rapide",
"Directeur de salle de spectacles",
"Directeur de theatre",
"Directeur departemental de l'equipement",
"Directeur des ressources humaines",
"Directeur du marketing",
"Directeur financier",
"Directeur general",
"Directeur litteraire",
"Dirigeant de club sportif",
"Disc jockey",
"Disquaire",
"Divers",
"Docker",
"Documentaliste",
"Dresseur de chiens",
"Droguiste",
"Ebeniste",
"Eboueur",
"Ecclesiastique",
"Eclusier",
"Econome",
"Ecrivain",
"Ecrivain public",
"Editeur",
"Educateur",
"Educateur de jeunes enfants",
"Educateur de mjc",
"Educateur de protection judiciaire de la jeunesse",
"Educateur specialise",
"Egoutier",
"Electricien",
"Electricien automobile",
"Electromecanicien",
"Electronicien",
"Electronique informatique",
"Eleve",
"Eleveur",
"Emailleur",
"Employe",
"Employe agricole",
"Employe a l'energie atomique",
"Employe a la caisse d'allocations familiales",
"Employe a la maintenance des parcmetres",
"Employe au stationnement payant",
"Employe aux abattoirs",
"Employe aux parcs et jardins",
"Employe d'agence d'interim",
"Employe d'agence de location de vehicules",
"Employe d'agence de voyage",
"Employe d'agence immobiliere",
"Employe d'ambassade",
"Employe d'aquaculture",
"Employe d'assurance",
"Employe d'electricite de france",
"Employe d'elevage",
"Employe d'etablissement de credit",
"Employe d'etablissement sanitaire et social",
"Employe d'etude notariale",
"Employe d'hotel",
"Employe de banque",
"Employe de boite de nuit",
"Employe de bureau",
"Employe de consulat",
"Employe de cooperative",
"Employe de creche",
"Employe de france telecom",
"Employe de grande surface",
"Employe de l'anpe",
"Employe de l'aviation civile",
"Employe de l'office national des forets",
"Employe de la bourse",
"Employe de la loterie nationale",
"Employe de la poste",
"Employe de laboratoire",
"Employe de maison",
"Employe de peage",
"Employe de restauration rapide",
"Employe de salle de jeux",
"Employe de salle de spectacles",
"Employe de service",
"Employe de station service",
"Employe des chambres d'agriculture",
"Employe des chambres de commerce",
"Employe des eaux",
"Employe des pistes",
"Employe des pompes funebres",
"Employe des ponts et chaussees",
"Employe des transports urbains",
"Employe des wagons lits",
"Employe du commerce",
"Employe du gaz de france",
"Employe du pmu",
"Employe du textile",
"Employe en horticulture",
"Endocrinologue",
"Enseignant",
"Enseigne de vaisseau 1ere classe",
"Enseigne de vaisseau 2e classe",
"Entraineur de chevaux de courses",
"Entraineur sportif",
"Entrepreneur de demenagement",
"Entrepreneur de pompes funebres",
"Entrepreneur du batiment",
"Epicier",
"Equarrisseur",
"Equipier en restauration rapide",
"Ergotherapeute",
"Estheticien",
"Etancheiste",
"Ethnologue",
"Etudiant",
"Eveque",
"Expert",
"Expert aupres des tribunaux",
"Expert comptable",
"Expert en assurances",
"Expert en economie",
"Expert en objets d'art",
"Expert fiscal",
"Exploitant agricole",
"Exploitant de camping",
"Fabricant d'articles de loisirs",
"Fabricant d'articles menagers",
"Fabricant d'articles vestimentaires",
"Fabricant de produits alimentaires",
"Fabricant de produits de beaute",
"Fabricant de produits du batiment",
"Faconneur",
"Facteur",
"Facteur d'instruments de musique",
"Facturier",
"Femme de menage",
"Fermier",
"Ferrailleur",
"Ferronnier",
"Fileur",
"Finances assurance",
"Fleuriste",
"Floriculteur",
"Fonction publique divers",
"Fonction publique territoriale",
"Fonctionnaire",
"Fonctionnaire civil du ministere de la defense",
"Fonctionnaire de l'education nationale",
"Fonctionnaire de l'equipement",
"Fonctionnaire de la caf",
"Fonctionnaire de la sante publique",
"Fonctionnaire de la securite sociale",
"Fonctionnaire de police",
"Fonctionnaire de prefecture",
"Fonctionnaire des douanes",
"Fonctionnaire des impots",
"Fonctionnaire du ministere de l'interieur",
"Fonctionnaire du ministere de la culture",
"Fonctionnaire du ministere de la justice",
"Fonctionnaire du ministere des affaires etrangeres",
"Fonctionnaire du ministere des finances",
"Fonctionnaire du tresor public",
"Fonde de pouvoir",
"Fondeur",
"Footballeur",
"Forain",
"Foreur",
"Forgeron",
"Fossoyeur",
"Fourreur",
"Frigoriste",
"Garagiste",
"Garcon d'ecurie",
"Garcon de cafe",
"Garde champetre",
"Garde chasse",
"Garde du corps",
"Garde forestier",
"Garde malade",
"Garde peche",
"Gardien de cimetiere",
"Gardien de la paix",
"Gardien de musee",
"Gardien de nuit",
"Gardien de square",
"Gastro enterologue",
"Gendarme",
"Genealogiste",
"General",
"Geneticien",
"Geographe",
"Geologue",
"Geometre",
"Geometre expert",
"Geometre topographe",
"Geophysicien",
"Gerant",
"Gerant de brasserie",
"Gerant de cantine",
"Gerant de casino",
"Gerant de magasin",
"Gerant de parc de loisirs",
"Gerant de restaurant",
"Gerant de salle de jeux",
"Gerant de salon de the",
"Gerant de self service",
"Gerant de sex shop",
"Gerant de societe",
"Gerant de station service",
"Gerant de video club",
"Gestionnaire de site internet",
"Glacier",
"Golfeur",
"Gouvernant",
"Grainetier",
"Graphiste",
"Graphologue",
"Graveur",
"Greffier",
"Groom",
"Grossiste",
"Grutier",
"Guerisseur",
"Guichetier",
"Guide",
"Guide accompagnateur",
"Guide de montagne",
"Guide de musee",
"Guide interprete",
"Gymnaste",
"Gynecologue obstetricien",
"Handballeur",
"Haut fonctionnaire",
"Haute personnalite etrangere",
"Heliograveur",
"Hematologue",
"Hepatologue",
"Herboriste",
"Historien",
"Hockeyeur",
"Homeopathe",
"Homme du rang",
"Hongreur",
"Horloger bijoutier",
"Horticulteur",
"Hote d'accueil",
"Hotelier",
"Hotelier restaurateur",
"Hotellerie",
"Hotesse de l'air",
"Huissier de justice",
"Hydrobiologiste",
"Hypnotiseur",
"Illustrateur",
"Imam",
"Immunologue",
"Imprimeur",
"Indeterminee",
"Industriel",
"Infirmier",
"Infographiste",
"Informaticien",
"Ingenieur",
"Ingenieur aeronautique",
"Ingenieur commercial",
"Ingenieur conseil",
"Ingenieur d'etudes et de fabrication",
"Ingenieur de police technique et scientifique",
"Ingenieur de recherche et de developpement",
"Ingenieur des travaux des eaux et forets",
"Ingenieur electronicien",
"Ingenieur en mecanique",
"Ingenieur informaticien",
"Ingenieur methode",
"Ingenieur reseaux",
"Inseminateur",
"Inspecteur d'academie",
"Inspecteur de la poste",
"Inspecteur de la repression des fraudes",
"Inspecteur des finances",
"Inspecteur du permis de conduire",
"Inspecteur du travail",
"Inspecteur general de l'administration",
"Installateur",
"Installateur d'alarme",
"Installateur d'antennes",
"Installateur d'enseignes",
"Installateur de cheminees",
"Installateur de stores",
"Installateur sanitaire",
"Installateur telephonique",
"Intendant",
"Interimaire",
"Intermittent du spectacle",
"Interne",
"Interprete",
"Jardinier",
"Jardinier municipal",
"Jardinier paysagiste",
"Joaillier",
"Jockey",
"Joueur de tennis",
"Journaliste",
"Journaliste presentateur",
"Journaliste radio",
"Journaliste sportif",
"Juge",
"Juridique office ministeriel",
"Juriste",
"Kayakiste",
"Lamineur",
"Laveur de carreaux",
"Lecteur",
"Legionnaire",
"Libraire",
"Lieutenant",
"Lieutenant colonel",
"Lieutenant de vaisseau",
"Liftier",
"Lingere",
"Liquidateur judiciaire",
"Lithographe",
"Livreur",
"Livreur de journaux",
"Loueur de vehicules",
"Luthier",
"Lyceen",
"Machiniste",
"Macon",
"Magasinier",
"Magistrat",
"Magnetiseur",
"Maintenance",
"Maire",
"Maitre auxiliaire",
"Maitre d'hotel",
"Maitre de chai",
"Maitre de conference",
"Maitre de forge",
"Maitre de la marine",
"Maitre nageur",
"Maitre principal",
"Major",
"Majordome",
"Manager de restauration rapide",
"Manager sportif",
"Manipulateur en electroradiologie",
"Mannequin",
"Manoeuvre",
"Manucure",
"Manutentionnaire",
"Maquettiste",
"Maquilleur professionnel",
"Marabout",
"Maraicher",
"Marbrier",
"Marchand ambulant",
"Marchand d'articles vestimentaires",
"Marchand d'oeuvres d'art",
"Marchand de bestiaux",
"Marchand de biens",
"Marchand de cycles",
"Marchand de meubles",
"Marchand de pièces détachées",
"Marchand de tapis",
"Marchand des quatre saisons",
"Marechal ferrant",
"Mareyeur",
"Marin de la marine marchande",
"Marin pecheur",
"Maroquinier",
"Masseur kinesitherapeute",
"Matelot",
"Mecanicien",
"Mecanicien auto",
"Mecanicien d'avion",
"Mecanicien dentiste",
"Mecanicien navigant",
"Medecin",
"Medecin chef",
"Medecin chef de service hospitalier",
"Medecin conseil",
"Medecin generaliste",
"Medecin legiste",
"Medecin reeducateur",
"Medecin specialiste",
"Mediateur",
"Medical",
"Medium",
"Menuisier",
"Menuisier charpentier",
"Mercier",
"Metallurgiste",
"Metayer",
"Meteorologue",
"Metreur",
"Metteur en scene",
"Meunier",
"Militaire",
"Mines carrieres industries",
"Mineur",
"Ministere de l'education nationale",
"Ministere de l'interieur",
"Ministere de la defense",
"Ministere de la justice",
"Ministere de la sante et de la solidarite",
"Ministere des affaires etrangeres",
"Ministere des finances",
"Ministere des transports et de l'equipement",
"Ministre",
"Ministre du culte",
"Miroitier",
"Moine",
"Moniteur d'auto ecole",
"Moniteur de ski",
"Moniteur de sport",
"Moniteur de vol",
"Monteur",
"Monteur cableur",
"Monteur d'ascenseur",
"Monteur de cuisine",
"Monteur de films",
"Motoriste metteur au point",
"Mouleur",
"Musicien",
"Mytiliculteur",
"Naturaliste",
"Negociant en bois",
"Negociant en vins",
"Nephrologue",
"Neurochirurgien",
"Neuropsychiatre",
"Notaire",
"Numerologue",
"Obstetricien",
"Oceanographe",
"Oenologue",
"Officier de la marine marchande",
"Officier de police",
"Officier de port",
"Officier des armees",
"Operateur",
"Operateur de saisie informatique",
"Operateur projectionniste",
"Ophtalmologue",
"Opticien",
"Orfevre",
"Organismes etablissements publics",
"Orpailleur",
"Orthodontiste",
"Orthophoniste",
"Orthoptiste",
"Osteopathe",
"Ostreiculteur",
"Oto rhino laryngologiste",
"Ouvrier",
"Ouvrier agricole",
"Ouvrier d' aquaculture",
"Ouvrier d'etat",
"Ouvrier d'imprimerie",
"Ouvrier en confection",
"Ouvrier forestier",
"Ouvrier qualifie",
"Ouvrier specialise",
"Ouvrier viticulteur",
"Palefrenier",
"Paludier",
"Paramedical",
"Parapsychologue",
"Parfumeur",
"Parqueteur",
"Pasteur",
"Patineur",
"Patissier",
"Patron pecheur",
"Paveur",
"Peche marine marchande",
"Pecheur",
"Pediatre",
"Pedicure",
"Pedo psychiatre",
"Peintre",
"Peintre decorateur",
"Peintre en automobiles",
"Peintre en batiment",
"Peintre tapissier",
"Pensionne",
"Pepinieriste",
"Perruquier",
"Personnel medical",
"Pharmacien",
"Photographe",
"Photographe de mode",
"Photographe de presse",
"Photograveur",
"Physicien",
"Physiologiste",
"Physiotherapeute",
"Pigiste",
"Pilote d'helicoptere",
"Pilote de ligne",
"Pilote de port",
"Pisciculteur",
"Pisciniste",
"Pizzaiolo",
"Plaquiste",
"Platrier",
"Plombier",
"Plombier chauffagiste",
"Plongeur",
"Pneumologue",
"Podologue",
"Poete",
"Poissonnier",
"Policier municipal",
"Politique",
"Politologue",
"Pompier",
"Porcelainier",
"Portier",
"Poseur d'affiches",
"Poseur de revetements",
"Poseur de revetements de sol",
"Postier",
"Potier",
"Prefet",
"Premier maitre",
"Preparateur de commandes",
"Preparateur en pharmacie",
"Prepose de la poste",
"Presentateur",
"President d'universite",
"President directeur general",
"Pretre",
"Principal de college",
"Procureur de la republique",
"Producteur",
"Producteur de radio",
"Producteur de television",
"Professeur",
"Professeur de danse",
"Professeur de l'enseignement secondaire",
"Professeur de l'enseignement superieur",
"Professeur des colleges",
"Professeur des ecoles",
"Proprietaire de haras",
"Prostituee",
"Prothesiste",
"Proviseur",
"Psychanalyste",
"Psychiatre",
"Psychologue",
"Psychomotricien",
"Psychotherapeute",
"Publiciste",
"Puericulteur",
"Puisatier",
"Pyrotechnicien",
"Quartier maitre 1ere classe",
"Quartier maitre 2e classe",
"Quincaillier",
"Rabbin",
"Radiesthesiste",
"Radiologue",
"Ramoneur",
"Ravaleur de facade",
"Realisateur",
"Rebouteux",
"Receptionniste",
"Receveur de la poste",
"Recherche",
"Recteur",
"Redacteur",
"Redacteur en chef",
"Redacteur publicitaire",
"Redacteur territorial",
"Regisseur de propriete",
"Regisseur de theatre",
"Regleur",
"Religieux",
"Religion",
"Remouleur",
"Rempailleur de chaises",
"Rentier",
"Repetiteur",
"Reporter",
"Representant",
"Responsable de communication",
"Responsable de la securite",
"Responsable de marketing",
"Restaurateur",
"Restaurateur d'art",
"Retoucheur",
"Retraite",
"Rhumatologue",
"Rmiste",
"Rugbyman",
"Sacristain",
"Sage femme",
"Saisonnier",
"Salinier",
"Sans profession",
"Santonnier",
"Scenariste",
"Scientifique",
"Scolarite formation",
"Scripte",
"Sculpteur",
"Second maitre",
"Secretaire",
"Secretaire administratif",
"Secretaire bilingue",
"Secretaire comptable",
"Secretaire d etat",
"Secretaire de direction",
"Secretaire de mairie",
"Secretaire de redaction",
"Secretaire general de prefecture",
"Secretaire juridique",
"Secretaire medicale",
"Secretaire trilingue",
"Sellier",
"Seminariste",
"Senateur",
"Sergent",
"Sergent chef",
"Serigraphe",
"Serrurier",
"Serveur",
"Serveur de cantine",
"Serveur de restaurant",
"Services aux particuliers et aux entreprises",
"Sexologue",
"Sociologue",
"Sommelier",
"Sophrologue",
"Soudeur",
"Souffleur de verre",
"Sous lieutenant",
"Sous officier de la marine marchande",
"Sous officier des armees",
"Sous prefet",
"Spectacles arts et lettres",
"Sport",
"Sportif professionnel",
"Staffeur",
"Stagiaire",
"Standardiste",
"Statisticien",
"Steward",
"Stomatologue",
"Styliste",
"Surveillant d'etablissement scolaire",
"Surveillant de l'administration penitentiaire",
"Sylviculteur",
"Syndic de copropriete",
"Tailleur",
"Tailleur de pierres",
"Tanneur",
"Tapissier",
"Tatoueur",
"Taxidermiste",
"Technicien",
"Technicien de maintenance",
"Technicien de plateau",
"Technicien de police technique et scientifique",
"Technicien du son",
"Technicien en effets speciaux",
"Technicien en intervention sociale et familiale",
"Technicien thermicien",
"Technicien video",
"Teinturier",
"Teinturier coloriste",
"Teleoperateur",
"Televendeur",
"Terrassier",
"Tisserand",
"Tisseur",
"Toiletteur pour chiens",
"Tolier",
"Tonnelier",
"Topographe",
"Torrefacteur",
"Tourisme culture loisirs",
"Tourneur fraiseur",
"Traceur",
"Traducteur",
"Traducteur litteraire",
"Transporteur de fonds",
"Transports logistique",
"Trefileur",
"Trufficulteur",
"Tueur aux abattoirs",
"Tuyauteur",
"Typographe",
"Urbaniste",
"Urologue",
"Vacataire",
"Vacher",
"Vaguemestre",
"Valet de chambre",
"Vannier",
"Veilleur de nuit",
"Veliplanchiste",
"Vendangeur",
"Vendeur",
"Vendeur demonstrateur",
"Venereologue",
"Verrier",
"Veterinaire",
"Vidangeur",
"Visiteur medical",
"Viticulteur",
"Vitrier",
"Voiturier",
"Volailler",
"Volcanologue",
"Volleyeur",
"Voyagiste",
"Voyant",
"Webmaster",
"Zingueur",
"Zoologiste"
];
return array_combine($arr, $arr);
}
public static function getCivilities()
{
$arr = [
"male",
"female",
];
return array_combine($arr, $arr);
}
public static function getPartnerTypes()
{
$arr = [
"Conjoint",
"Enfant",
];
return array_combine($arr, $arr);
}
public static function getFamilySituations(?string $civility = null)
{
if ($civility === 'male') {
$arr = [
'Célibataire' => 'single',
'Concubinage' => 'cohabitant',
'Marié' => 'married',
'Pacsé' => 'civilPartnership',
'Divorcé' => 'divorced',
'Veuf' => 'widower',
];
} elseif ($civility === 'female') {
$arr = [
'Célibataire' => 'single',
'Concubinage' => 'cohabitant',
'Mariée' => 'marriedf',
'Pacsée' => 'civilPartnershipf',
'Divorcée' => 'divorcedf',
'Veuve' => 'widowerf',
];
} else {
$arr = [
'Célibataire' => 'single',
'Concubinage' => 'cohabitant',
'Marié' => 'married',
'Pacsé' => 'civilPartnership',
'Divorcé' => 'divorced',
'Veuf' => 'widower',
'Mariée' => 'marriedf',
'Pacsée' => 'civilPartnershipf',
'Divorcée' => 'divorcedf',
'Veuve' => 'widowerf',
];
}
return $arr;
}
public static function getIdentityCardTypes($nationality = null)
{
if ($nationality == "Française" || $nationality == "FX – France métropolitaine" || !$nationality) {
$arr = [
"Passeport",
"Carte d'identité",
];
} else {
$arr = [
"Passeport",
"Carte de séjour",
"Récepissé de demande de titre de séjour",
];
}
return array_combine($arr, $arr);
}
public function __toString()
{
return "#" . $this->id . " - " . $this->firstName . " " . $this->lastName;
}
public function getSecondIdentityCardFile()
{
return $this->secondIdentityCardFile;
}
/**
* If manually uploading a file (i.e. not using Symfony Form) ensure an instance
* of 'UploadedFile' is injected into this setter to trigger the update. If this
* bundle's configuration parameter 'inject_on_load' is set to 'true' this setter
* must be able to accept an instance of 'File' as the bundle will inject one here
* during Doctrine hydration.
*
* @param File|\Symfony\Component\HttpFoundation\File\UploadedFile $image
*/
public function setSecondIdentityCardFile(File $image = null)
{
$this->secondIdentityCardFile = $image;
if (null !== $image) {
// It is required that at least one field changes if you are using doctrine
// otherwise the event listeners won't be called and the file is lost
$this->secondIdentityCardFileUpdatedAt = new \DateTime();
}
}
public function setSuperAdmin($boolean)
{
if (true === $boolean) {
$this->addRole(static::ROLE_SUPER_ADMIN);
} else {
$this->removeRole(static::ROLE_SUPER_ADMIN);
}
return $this;
}
public function addRole($role)
{
$role = strtoupper($role);
if ($role === static::ROLE_DEFAULT) {
return $this;
}
if (!in_array($role, $this->roles, true)) {
$this->roles[] = $role;
}
return $this;
}
public function removeRole($role)
{
if (false !== $key = array_search(strtoupper($role), $this->roles, true)) {
unset($this->roles[$key]);
$this->roles = array_values($this->roles);
}
return $this;
}
public function isSuperAdmin()
{
return $this->hasRole(static::ROLE_SUPER_ADMIN);
}
public function hasRole($role)
{
return in_array(strtoupper($role), $this->getRoles(), true);
}
/**
* @see UserInterface
*/
public function getRoles(): array
{
$roles = $this->roles;
// guarantee every user at least has ROLE_USER
$roles[] = 'ROLE_USER';
return array_unique($roles);
}
public function setRoles(array $roles): self
{
$this->roles = [];
foreach ($roles as $role) {
$this->addRole($role);
}
return $this;
}
/**
* @return string
*/
public function getEmail(): string
{
return $this->email;
}
/**
* Sets the email.
*
* @param string $email
* @return User
*/
public function setEmail(string $email): self
{
$this->email = $email;
return $this;
}
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Get company
*
* @return string
*/
public function getCompany()
{
return $this->company;
}
/**
* Set company
*
* @param string $company
*
* @return User
*/
public function setCompany($company)
{
$this->company = $company;
return $this;
}
/**
* Get civility
*
* @return string
*/
public function getCivility()
{
return $this->civility;
}
/**
* Set civility
*
* @param string $civility
*
* @return User
*/
public function setCivility($civility)
{
$this->civility = $civility;
return $this;
}
/**
* Get lastName
*
* @return string
*/
public function getLastName()
{
return $this->lastName;
}
/**
* Set lastName
*
* @param string $lastName
*
* @return User
*/
public function setLastName($lastName)
{
$this->lastName = $lastName;
return $this;
}
/**
* Get lastName to show
* partnerName or lastname (from birth)
*
* @return string
*/
public function getLastNameToShow()
{
if (!empty($this->partnerName)) {
return $this->partnerName;
} else {
return $this->lastName;
}
}
/**
* Get firstName
*
* @return string
*/
public function getFirstName()
{
return $this->firstName;
}
/**
* Set firstName
*
* @param string $firstName
*
* @return User
*/
public function setFirstName($firstName)
{
$this->firstName = $firstName;
return $this;
}
/**
* Get phoneNumber
*
* @return string
*/
public function getPhoneNumber()
{
return $this->phoneNumber;
}
public function getYouSignPhoneNumber(): string
{
$phone = $this->phoneNumber;
if (substr($phone, 0, 1) == "+") {
return $phone;
}
if (substr($phone, 0, 2) == "00") {
return "+" . substr($phone, 2);
}
return "+33" . substr($phone, 1);
}
/**
* Set phoneNumber
*
* @param string $phoneNumber
*
* @return User
*/
public function setPhoneNumber($phoneNumber)
{
$this->phoneNumber = $phoneNumber;
return $this;
}
/**
* Get createdAt
*
* @return DateTime
*/
public function getCreatedAt()
{
return $this->createdAt;
}
/**
* Set createdAt
*
* @param DateTime $createdAt
*
* @return User
*/
public function setCreatedAt($createdAt)
{
$this->createdAt = $createdAt;
return $this;
}
/**
* Get phoneNumberConfirmationCode
*
* @return string
*/
public function getPhoneNumberConfirmationCode()
{
return $this->phoneNumberConfirmationCode;
}
/**
* Set phoneNumberConfirmationCode
*
* @param string $phoneNumberConfirmationCode
*
* @return User
*/
public function setPhoneNumberConfirmationCode($phoneNumberConfirmationCode)
{
$this->phoneNumberConfirmationCode = $phoneNumberConfirmationCode;
return $this;
}
/**
* Get birthDate
*
* @return DateTime
*/
public function getBirthDate()
{
return $this->birthDate;
}
/**
* Set birthDate
*
* @param DateTime $birthDate
*
* @return User
*/
public function setBirthDate($birthDate)
{
$this->birthDate = $birthDate;
return $this;
}
/**
* Get birthCountry
*
* @return string
*/
public function getBirthCountry()
{
return $this->birthCountry;
}
/**
* Set birthCountry
*
* @param string $birthCountry
*
* @return User
*/
public function setBirthCountry($birthCountry)
{
$this->birthCountry = $birthCountry;
return $this;
}
/**
* Get birthCity
*
* @return string
*/
public function getBirthCity()
{
return $this->birthCity;
}
/**
* Set birthCity
*
* @param string $birthCity
*
* @return User
*/
public function setBirthCity($birthCity)
{
$this->birthCity = $birthCity;
return $this;
}
/**
* Get birthZipCode
*
* @return string
*/
public function getBirthZipCode()
{
return $this->birthZipCode;
}
/**
* Set birthZipCode
*
* @param string $birthZipCode
*
* @return User
*/
public function setBirthZipCode($birthZipCode)
{
$this->birthZipCode = $birthZipCode;
return $this;
}
/**
* Get birthDepartment
*
* @return string
*/
public function getBirthDepartment()
{
return $this->birthDepartment;
}
/**
* Set birthDepartment
*
* @param string $birthDepartment
*
* @return User
*/
public function setBirthDepartment($birthDepartment)
{
$this->birthDepartment = $birthDepartment;
return $this;
}
/**
* Get familySituation
*
* @return string
*/
public function getFamilySituation()
{
return $this->familySituation;
}
/**
* Set familySituation
*
* @param string $familySituation
*
* @return User
*/
public function setFamilySituation($familySituation)
{
$this->familySituation = $familySituation;
return $this;
}
/**
* Get nationality
*
* @return string
*/
public function getNationality()
{
return $this->nationality;
}
/**
* Set nationality
*
* @param string $nationality
*
* @return User
*/
public function setNationality($nationality)
{
$this->nationality = $nationality;
return $this;
}
/**
* Get profession
*
* @return string
*/
public function getProfession()
{
return $this->profession;
}
/**
* Set profession
*
* @param string $profession
*
* @return User
*/
public function setProfession($profession)
{
$this->profession = $profession;
return $this;
}
/**
* Get promotionalCode
*
* @return string
*/
public function getPromotionalCode()
{
return $this->promotionalCode;
}
/**
* Set promotionalCode
*
* @param string $promotionalCode
*
* @return User
*/
public function setPromotionalCode($promotionalCode)
{
$this->promotionalCode = $promotionalCode;
return $this;
}
/**
* Add document
*
* @param \App\Entity\Document $document
*
* @return User
*/
public function addDocument(\App\Entity\Document $document)
{
$this->documents[] = $document;
return $this;
}
/**
* Remove document
*
* @param \App\Entity\Document $document
*/
public function removeDocument(\App\Entity\Document $document)
{
$this->documents->removeElement($document);
}
/**
* Get documents
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getDocuments()
{
return $this->documents;
}
/**
* Add video
*
* @param \App\Entity\Video $video
*
* @return User
*/
public function addVideo(\App\Entity\Video $video)
{
$this->videos[] = $video;
return $this;
}
/**
* Remove video
*
* @param \App\Entity\Video $video
*/
public function removeVideo(\App\Entity\Video $video)
{
$this->videos->removeElement($video);
}
/**
* Get videos
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getVideos()
{
return $this->videos;
}
/**
* Add item
*
* @param \App\Entity\Item $item
*
* @return User
*/
public function addItem(\App\Entity\Item $item)
{
$this->items[] = $item;
return $this;
}
/**
* Remove item
*
* @param \App\Entity\Item $item
*/
public function removeItem(\App\Entity\Item $item)
{
$this->items->removeElement($item);
}
/**
* Get items
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getItems(bool $all = true, bool $withoutInsuranceFilter = false)
{
if ($all)
return $this->items;
return $this->items->filter(function (Item $item) use ($withoutInsuranceFilter) {
if (!$item->getIsDeleted() && (!$withoutInsuranceFilter || !$item->hasActiveInsurance()))
return $item;
return false;
});
}
/**
* Add insurance
*
* @param \App\Entity\Insurance $insurance
*
* @return User
*/
public function addInsurance(\App\Entity\Insurance $insurance)
{
$this->insurances[] = $insurance;
return $this;
}
/**
* Remove insurance
*
* @param \App\Entity\Insurance $insurance
*/
public function removeInsurance(\App\Entity\Insurance $insurance)
{
$this->insurances->removeElement($insurance);
}
/**
* Get insurances
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getInsurances()
{
return $this->insurances;
}
/**
* Add goodAssignement
*
* @param \App\Entity\GoodAssignement $goodAssignement
*
* @return User
*/
public function addGoodAssignement(\App\Entity\GoodAssignement $goodAssignement)
{
$this->goodAssignements[] = $goodAssignement;
return $this;
}
/**
* Remove goodAssignement
*
* @param \App\Entity\GoodAssignement $goodAssignement
*/
public function removeGoodAssignement(\App\Entity\GoodAssignement $goodAssignement)
{
$this->goodAssignements->removeElement($goodAssignement);
}
/**
* Get goodAssignements
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getGoodAssignements()
{
return $this->goodAssignements;
}
/**
* Add qrCode
*
* @param \App\Entity\QrCode $qrCode
*
* @return User
*/
public function addQrCode(\App\Entity\QrCode $qrCode)
{
$this->qrCodes[] = $qrCode;
return $this;
}
/**
* Remove qrCode
*
* @param \App\Entity\QrCode $qrCode
*/
public function removeQrCode(\App\Entity\QrCode $qrCode)
{
$this->qrCodes->removeElement($qrCode);
}
/**
* Get qrCodes
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getQrCodes()
{
return $this->qrCodes;
}
/**
* Add steal
*
* @param \App\Entity\Steal $steal
*
* @return User
*/
public function addSteal(\App\Entity\Steal $steal)
{
$this->steals[] = $steal;
return $this;
}
/**
* Remove steal
*
* @param \App\Entity\Steal $steal
*/
public function removeSteal(\App\Entity\Steal $steal)
{
$this->steals->removeElement($steal);
}
/**
* Get steals
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getSteals()
{
return $this->steals;
}
/**
* Get partnerType
*
* @return string
*/
public function getPartnerType()
{
return $this->partnerType;
}
/**
* Set partnerType
*
* @param string $partnerType
*
* @return User
*/
public function setPartnerType($partnerType)
{
$this->partnerType = $partnerType;
return $this;
}
/**
* Get suscribedToNewsletter
*
* @return boolean
*/
public function getSuscribedToNewsletter()
{
return $this->suscribedToNewsletter;
}
/**
* Set suscribedToNewsletter
*
* @param boolean $suscribedToNewsletter
*
* @return User
*/
public function setSuscribedToNewsletter($suscribedToNewsletter)
{
$this->suscribedToNewsletter = $suscribedToNewsletter;
return $this;
}
/**
* Get acceptPartnerProspecting
*
* @return boolean
*/
public function getAcceptPartnerProspecting()
{
return $this->acceptPartnerProspecting;
}
/**
* Set acceptPartnerProspecting
*
* @param boolean $acceptPartnerProspecting
*
* @return User
*/
public function setAcceptPartnerProspecting($acceptPartnerProspecting)
{
$this->acceptPartnerProspecting = $acceptPartnerProspecting;
return $this;
}
/**
* Add fillingComplaint
*
* @param \App\Entity\FillingComplaint $fillingComplaint
*
* @return User
*/
public function addFillingComplaint(\App\Entity\FillingComplaint $fillingComplaint)
{
$this->fillingComplaints[] = $fillingComplaint;
return $this;
}
/**
* Remove fillingComplaint
*
* @param \App\Entity\FillingComplaint $fillingComplaint
*/
public function removeFillingComplaint(\App\Entity\FillingComplaint $fillingComplaint)
{
$this->fillingComplaints->removeElement($fillingComplaint);
}
/**
* Get fillingComplaints
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getFillingComplaints()
{
return $this->fillingComplaints;
}
/**
* Add disasterDeclaration
*
* @param \App\Entity\DisasterDeclaration $disasterDeclaration
*
* @return User
*/
public function addDisasterDeclaration(\App\Entity\DisasterDeclaration $disasterDeclaration)
{
$this->disasterDeclarations[] = $disasterDeclaration;
return $this;
}
/**
* Remove disasterDeclaration
*
* @param \App\Entity\DisasterDeclaration $disasterDeclaration
*/
public function removeDisasterDeclaration(\App\Entity\DisasterDeclaration $disasterDeclaration)
{
$this->disasterDeclarations->removeElement($disasterDeclaration);
}
/**
* Get disasterDeclarations
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getDisasterDeclarations()
{
return $this->disasterDeclarations;
}
/**
* Get stripeCustomerId
*
* @return string
*/
public function getStripeCustomerId()
{
return $this->stripeCustomerId;
}
/**
* Set stripeCustomerId
*
* @param string $stripeCustomerId
*
* @return User
*/
public function setStripeCustomerId($stripeCustomerId)
{
$this->stripeCustomerId = $stripeCustomerId;
return $this;
}
/**
* Add charge
*
* @param \App\Entity\Charge $charge
*
* @return User
*/
public function addCharge(\App\Entity\Charge $charge)
{
$this->charges[] = $charge;
return $this;
}
/**
* Remove charge
*
* @param \App\Entity\Charge $charge
*/
public function removeCharge(\App\Entity\Charge $charge)
{
$this->charges->removeElement($charge);
}
/**
* Get charges
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getCharges()
{
return $this->charges;
}
/**
* Add insuranceDisasterDeclaration
*
* @param \App\Entity\InsuranceDisasterDeclaration $insuranceDisasterDeclaration
*
* @return User
*/
public function addInsuranceDisasterDeclaration(\App\Entity\InsuranceDisasterDeclaration $insuranceDisasterDeclaration)
{
$this->insuranceDisasterDeclarations[] = $insuranceDisasterDeclaration;
return $this;
}
/**
* Remove insuranceDisasterDeclaration
*
* @param \App\Entity\InsuranceDisasterDeclaration $insuranceDisasterDeclaration
*/
public function removeInsuranceDisasterDeclaration(\App\Entity\InsuranceDisasterDeclaration $insuranceDisasterDeclaration)
{
$this->insuranceDisasterDeclarations->removeElement($insuranceDisasterDeclaration);
}
/**
* Get insuranceDisasterDeclarations
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getInsuranceDisasterDeclarations()
{
return $this->insuranceDisasterDeclarations;
}
/**
* Get signature
*
* @return string
*/
public function getSignature()
{
return $this->signature;
}
/**
* Set signature
*
* @param string $signature
*
* @return User
*/
public function setSignature($signature)
{
$this->signature = $signature;
return $this;
}
/**
* Get hasAcceptedConditions
*
* @return boolean
*/
public function getHasAcceptedConditions()
{
return $this->hasAcceptedConditions;
}
/**
* Set hasAcceptedConditions
*
* @param boolean $hasAcceptedConditions
*
* @return User
*/
public function setHasAcceptedConditions($hasAcceptedConditions)
{
$this->hasAcceptedConditions = $hasAcceptedConditions;
return $this;
}
/**
* Get firstLogin
*
* @return boolean
*/
public function getFirstLogin()
{
return $this->firstLogin;
}
/**
* Set firstLogin
*
* @param boolean $firstLogin
*
* @return User
*/
public function setFirstLogin($firstLogin)
{
$this->firstLogin = $firstLogin;
return $this;
}
/**
* Get partnerName
*
* @return string
*/
public function getPartnerName()
{
return $this->partnerName;
}
/**
* Set partnerName
*
* @param string $partnerName
*
* @return User
*/
public function setPartnerName($partnerName)
{
$this->partnerName = $partnerName;
return $this;
}
/**
* Get fixPhoneNumber
*
* @return string
*/
public function getFixPhoneNumber()
{
return $this->fixPhoneNumber;
}
/**
* Set fixPhoneNumber
*
* @param string $fixPhoneNumber
*
* @return User
*/
public function setFixPhoneNumber($fixPhoneNumber)
{
$this->fixPhoneNumber = $fixPhoneNumber;
return $this;
}
/**
* Add child
*
* @param \App\Entity\Child $child
*
* @return User
*/
public function addChild(\App\Entity\Child $child)
{
$this->children[] = $child;
$child->setUser($this);
return $this;
}
/**
* Remove child
*
* @param \App\Entity\Child $child
*/
public function removeChild(\App\Entity\Child $child)
{
$this->children->removeElement($child);
}
/**
* Get children
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getChildren()
{
return $this->children;
}
/**
* Add complaintX
*
* @param \App\Entity\ComplaintX $complaintX
*
* @return User
*/
public function addComplaintX(\App\Entity\ComplaintX $complaintX)
{
$this->complaintXs[] = $complaintX;
return $this;
}
/**
* Remove complaintX
*
* @param \App\Entity\ComplaintX $complaintX
*/
public function removeComplaintX(\App\Entity\ComplaintX $complaintX)
{
$this->complaintXs->removeElement($complaintX);
}
/**
* Get complaintXs
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getComplaintXs()
{
return $this->complaintXs;
}
/**
* Add vehicle
*
* @param \App\Entity\Vehicle $vehicle
*
* @return User
*/
public function addVehicle(\App\Entity\Vehicle $vehicle)
{
$this->vehicles[] = $vehicle;
return $this;
}
/**
* Remove vehicle
*
* @param \App\Entity\Vehicle $vehicle
*/
public function removeVehicle(\App\Entity\Vehicle $vehicle)
{
$this->vehicles->removeElement($vehicle);
}
/**
* Get vehicles
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getVehicles(bool $all = true, bool $withoutInsuranceFilter = false)
{
if ($all)
return $this->vehicles;
return $this->vehicles->filter(function (Vehicle $vehicle) use ($withoutInsuranceFilter) {
if (!$vehicle->getIsDeleted() && (!$withoutInsuranceFilter || !$vehicle->hasActiveInsurance()))
return $vehicle;
return false;
});
}
/**
* Add paymentMethod
*
* @param \App\Entity\PaymentMethod $paymentMethod
*
* @return User
*/
public function addPaymentMethod(\App\Entity\PaymentMethod $paymentMethod)
{
$this->paymentMethods[] = $paymentMethod;
return $this;
}
/**
* Remove paymentMethod
*
* @param \App\Entity\PaymentMethod $paymentMethod
*/
public function removePaymentMethod(\App\Entity\PaymentMethod $paymentMethod)
{
$this->paymentMethods->removeElement($paymentMethod);
}
/**
* Get paymentMethods
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getPaymentMethods()
{
return $this->paymentMethods;
}
/**
* Add itemsListComplaint
*
* @param \App\Entity\ItemsListComplaint $itemsListComplaint
*
* @return User
*/
public function addItemsListComplaint(\App\Entity\ItemsListComplaint $itemsListComplaint)
{
$this->itemsListComplaints[] = $itemsListComplaint;
return $this;
}
/**
* Remove itemsListComplaint
*
* @param \App\Entity\ItemsListComplaint $itemsListComplaint
*/
public function removeItemsListComplaint(\App\Entity\ItemsListComplaint $itemsListComplaint)
{
$this->itemsListComplaints->removeElement($itemsListComplaint);
}
/**
* Get itemsListComplaints
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getItemsListComplaints()
{
return $this->itemsListComplaints;
}
/**
* Add archiveComplaint
*
* @param \App\Entity\ArchiveComplaint $archiveComplaint
*
* @return User
*/
public function addArchiveComplaint(\App\Entity\ArchiveComplaint $archiveComplaint)
{
$this->archiveComplaints[] = $archiveComplaint;
return $this;
}
/**
* Remove archiveComplaint
*
* @param \App\Entity\ArchiveComplaint $archiveComplaint
*/
public function removeArchiveComplaint(\App\Entity\ArchiveComplaint $archiveComplaint)
{
$this->archiveComplaints->removeElement($archiveComplaint);
}
/**
* Get archiveComplaints
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getArchiveComplaints()
{
return $this->archiveComplaints;
}
/**
* Add lossReport
*
* @param \App\Entity\LossReport $lossReport
*
* @return User
*/
public function addLossReport(\App\Entity\LossReport $lossReport)
{
$this->lossReports[] = $lossReport;
return $this;
}
/**
* Remove lossReport
*
* @param \App\Entity\LossReport $lossReport
*/
public function removeLossReport(\App\Entity\LossReport $lossReport)
{
$this->lossReports->removeElement($lossReport);
}
/**
* Get lossReports
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getLossReports()
{
return $this->lossReports;
}
/**
* Add itemsListBackup
*
* @param \App\Entity\ItemsListBackup $itemsListBackup
*
* @return User
*/
public function addItemsListBackup(\App\Entity\ItemsListBackup $itemsListBackup)
{
$this->itemsListBackups[] = $itemsListBackup;
return $this;
}
/**
* Remove itemsListBackup
*
* @param \App\Entity\ItemsListBackup $itemsListBackup
*/
public function removeItemsListBackup(\App\Entity\ItemsListBackup $itemsListBackup)
{
$this->itemsListBackups->removeElement($itemsListBackup);
}
/**
* Get itemsListBackups
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getItemsListBackups()
{
return $this->itemsListBackups;
}
/**
* Get available itemsListBackups
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getAvailableItemsListBackups(): Collection
{
return $this->itemsListBackups->filter(function (ItemsListBackup $itemsListBackup) {
return !$itemsListBackup->getIsDeleted();
});
}
/**
* Add search
*
* @param \App\Entity\Search $search
*
* @return User
*/
public function addSearch(\App\Entity\Search $search)
{
$this->searchs[] = $search;
return $this;
}
/**
* Remove search
*
* @param \App\Entity\Search $search
*/
public function removeSearch(\App\Entity\Search $search)
{
$this->searchs->removeElement($search);
}
/**
* Get searchs
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getSearchs()
{
return $this->searchs;
}
/**
* Get secondIdentityCardExpirationDate
*
* @return DateTime
*/
public function getSecondIdentityCardExpirationDate()
{
return $this->secondIdentityCardExpirationDate;
}
/**
* Set secondIdentityCardExpirationDate
*
* @param DateTime $secondIdentityCardExpirationDate
*
* @return User
*/
public function setSecondIdentityCardExpirationDate($secondIdentityCardExpirationDate)
{
$this->secondIdentityCardExpirationDate = $secondIdentityCardExpirationDate;
return $this;
}
/**
* Get secondIdentityCardFileName
*
* @return string
*/
public function getSecondIdentityCardFileName()
{
return $this->secondIdentityCardFileName;
}
/**
* Set secondIdentityCardFileName
*
* @param string $secondIdentityCardFileName
*
* @return User
*/
public function setSecondIdentityCardFileName($secondIdentityCardFileName)
{
$this->secondIdentityCardFileName = $secondIdentityCardFileName;
return $this;
}
/**
* Get secondIdentityCardFileSize
*
* @return integer
*/
public function getSecondIdentityCardFileSize()
{
return $this->secondIdentityCardFileSize;
}
/**
* Set secondIdentityCardFileSize
*
* @param integer $secondIdentityCardFileSize
*
* @return User
*/
public function setSecondIdentityCardFileSize($secondIdentityCardFileSize)
{
$this->secondIdentityCardFileSize = $secondIdentityCardFileSize;
return $this;
}
/**
* Get secondIdentityCardFileUpdatedAt
*
* @return DateTime
*/
public function getSecondIdentityCardFileUpdatedAt()
{
return $this->secondIdentityCardFileUpdatedAt;
}
/**
* Set secondIdentityCardFileUpdatedAt
*
* @param DateTime $secondIdentityCardFileUpdatedAt
*
* @return User
*/
public function setSecondIdentityCardFileUpdatedAt($secondIdentityCardFileUpdatedAt)
{
$this->secondIdentityCardFileUpdatedAt = $secondIdentityCardFileUpdatedAt;
return $this;
}
/**
* Get hasAlreadyEditedAddresses
*
* @return boolean
*/
public function getHasAlreadyEditedAddresses()
{
return $this->hasAlreadyEditedAddresses;
}
/**
* Set hasAlreadyEditedAddresses
*
* @param boolean $hasAlreadyEditedAddresses
*
* @return User
*/
public function setHasAlreadyEditedAddresses($hasAlreadyEditedAddresses)
{
$this->hasAlreadyEditedAddresses = $hasAlreadyEditedAddresses;
return $this;
}
/**
* Get hasAlreadyEditedIdentityInfos
*
* @return boolean
*/
public function getHasAlreadyEditedIdentityInfos()
{
return $this->hasAlreadyEditedIdentityInfos;
}
/**
* Set hasAlreadyEditedIdentityInfos
*
* @param boolean $hasAlreadyEditedIdentityInfos
*
* @return User
*/
public function setHasAlreadyEditedIdentityInfos($hasAlreadyEditedIdentityInfos)
{
$this->hasAlreadyEditedIdentityInfos = $hasAlreadyEditedIdentityInfos;
return $this;
}
/**
* Get hasAlreadyEditedContactInfos
*
* @return boolean
*/
public function getHasAlreadyEditedContactInfos()
{
return $this->hasAlreadyEditedContactInfos;
}
/**
* Set hasAlreadyEditedContactInfos
*
* @param boolean $hasAlreadyEditedContactInfos
*
* @return User
*/
public function setHasAlreadyEditedContactInfos($hasAlreadyEditedContactInfos)
{
$this->hasAlreadyEditedContactInfos = $hasAlreadyEditedContactInfos;
return $this;
}
/**
* Get hasAlreadyEditedIdentityCard
*
* @return boolean
*/
public function getHasAlreadyEditedIdentityCard()
{
return $this->hasAlreadyEditedIdentityCard;
}
/**
* Set hasAlreadyEditedIdentityCard
*
* @param boolean $hasAlreadyEditedIdentityCard
*
* @return User
*/
public function setHasAlreadyEditedIdentityCard($hasAlreadyEditedIdentityCard)
{
$this->hasAlreadyEditedIdentityCard = $hasAlreadyEditedIdentityCard;
return $this;
}
/**
* Get identityCardType.
*
* @return string|null
*/
public function getIdentityCardType()
{
return $this->identityCardType;
}
/**
* Set identityCardType.
*
* @param string|null $identityCardType
*
* @return User
*/
public function setIdentityCardType($identityCardType = null)
{
$this->identityCardType = $identityCardType;
return $this;
}
/**
* Add identityCardPhoto.
*
* @param \App\Entity\IdentityCardPhoto $identityCardPhoto
*
* @return User
*/
public function addIdentityCardPhoto(\App\Entity\IdentityCardPhoto $identityCardPhoto)
{
$this->identityCardPhotos[] = $identityCardPhoto;
return $this;
}
/**
* Remove identityCardPhoto.
*
* @param \App\Entity\IdentityCardPhoto $identityCardPhoto
*
* @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
*/
public function removeIdentityCardPhoto(\App\Entity\IdentityCardPhoto $identityCardPhoto)
{
return $this->identityCardPhotos->removeElement($identityCardPhoto);
}
/**
* Get identityCardPhotos.
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getIdentityCardPhotos()
{
return $this->identityCardPhotos;
}
/**
* Get identityCardExpirationDate.
*
* @return DateTime|null
*/
public function getIdentityCardExpirationDate()
{
return $this->identityCardExpirationDate;
}
/**
* Set identityCardExpirationDate.
*
* @param DateTime|null $identityCardExpirationDate
*
* @return User
*/
public function setIdentityCardExpirationDate($identityCardExpirationDate = null)
{
$this->identityCardExpirationDate = $identityCardExpirationDate;
return $this;
}
public function getPartnerUser()
{
if ($this->getPartnerLead()) {
$partner = $this->getPartnerLead();
} elseif ($this->getPartner()) {
$partner = $this->getPartner();
} else {
$partner = false;
}
return $partner;
}
/**
* Get partnerLead
*
* @return \App\Entity\User
*/
public function getPartnerLead()
{
return $this->partnerLead;
}
/**
* Set partnerLead
*
* @param \App\Entity\User $partnerLead
*
* @return User
*/
public function setPartnerLead(\App\Entity\User $partnerLead = null)
{
$this->partnerLead = $partnerLead;
return $this;
}
/**
* Get partner
*
* @return \App\Entity\User
*/
public function getPartner()
{
return $this->partner;
}
/**
* Set partner
*
* @param \App\Entity\User $partner
*
* @return User
*/
public function setPartner(\App\Entity\User $partner = null)
{
$this->partner = $partner;
return $this;
}
/**
* Add addressUser.
*
* @param \App\Entity\Address $addressUser
*
* @return User
*/
public function addAddressUser(\App\Entity\Address $addressUser)
{
$this->addressUser[] = $addressUser;
return $this;
}
/**
* Remove addressUser.
*
* @param \App\Entity\Address $addressUser
*
* @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
*/
public function removeAddressUser(\App\Entity\Address $addressUser)
{
return $this->addressUser->removeElement($addressUser);
}
/**
* Get addressUser.
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getAddressUser(bool $all = true, bool $withoutInsuranceFilter = false)
{
if ($all)
return $this->addressUser;
return $this->addressUser->filter(function (Address $address) use ($withoutInsuranceFilter) {
if (!$address->getIsDeleted() && (!$withoutInsuranceFilter || !$address->hasActiveInsurance()))
return $address;
return false;
});
}
/**
*
*/
public function getMainAddress()
{
foreach ($this->addressUser as $key => $value) {
if ($value->getType() == "main" && $value->getIsDeleted() !== true) {
return $value;
}
}
return false;
}
/**
*
*/
public function getFirstSecondAddresses()
{
foreach ($this->addressUser as $key => $value) {
if ($value->getType() == "second" && $value->getIsDeleted() !== true) {
return $value;
}
}
return false;
}
/**
*
*/
public function getFirstOtherAddresses()
{
foreach ($this->addressUser as $key => $value) {
if ($value->getType() == "room" && $value->getIsDeleted() !== true) {
return $value;
}
}
return false;
}
/**
* Get accountId.
*
* @return string|null
*/
public function getAccountId()
{
return $this->accountId;
}
/**
* Set accountId.
*
* @param string|null $accountId
*
* @return User
*/
public function setAccountId($accountId = null)
{
$this->accountId = $accountId;
return $this;
}
/**
* Get isBeginner.
*
* @return bool
*/
public function getIsBeginner()
{
return $this->isBeginner;
}
/**
* Set isBeginner.
*
* @param bool $isBeginner
*
* @return User
*/
public function setIsBeginner($isBeginner)
{
$this->isBeginner = $isBeginner;
return $this;
}
/**
* Get deleteCode.
*
* @return string|null
*/
public function getDeleteCode()
{
return $this->deleteCode;
}
/**
* Set deleteCode.
*
* @param string|null $deleteCode
*
* @return User
*/
public function setDeleteCode($deleteCode = null)
{
$this->deleteCode = $deleteCode;
return $this;
}
/**
* @see UserInterface
*/
public function getPassword(): string
{
return (string)$this->password;
}
public function setPassword(string $password): self
{
$this->password = $password;
return $this;
}
/**
* @return mixed
*/
public function getPlainPassword()
{
return $this->plainPassword;
}
/**
* @param mixed $plainPassword
* @return User
*/
public function setPlainPassword($plainPassword): self
{
$this->plainPassword = $plainPassword;
return $this;
}
/**
* @return mixed
*/
public function getGmaps()
{
$birthPlace = $this->getBirthCity() ? $this->getBirthCity() . ' - ' : '';
$birthPlace .= $this->getBirthZipCode() ? $this->getBirthZipCode() . ' - ' : '';
$birthPlace .= $this->getBirthCountry() ? $this->getBirthCountry() : '';
if ($birthPlace)
return $birthPlace;
return $this->gmaps;
}
/**
* @param mixed $gmaps
* @return User
*/
public function setGmaps($gmaps): self
{
$this->gmaps = $gmaps;
return $this;
}
/**
* Returning a salt is only needed, if you are not using a modern
* hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.
*
* @see UserInterface
*/
public function getSalt(): ?string
{
return null;
}
public function eraseCredentials()
{
// TODO: Implement eraseCredentials() method.
}
public function getUsername()
{
return $this->email;
}
public function __call($name, $arguments)
{
// TODO: Implement @method string getUserIdentifier()
}
/**
* @return Collection|PartnerPending[]
*/
public function getPartnerPendings(): Collection
{
return $this->partnerPendings;
}
public function addPartnerPending(PartnerPending $partnerPending): self
{
if (!$this->partnerPendings->contains($partnerPending)) {
$this->partnerPendings[] = $partnerPending;
$partnerPending->setPartner($this);
}
return $this;
}
public function removePartnerPending(PartnerPending $partnerPending): self
{
if ($this->partnerPendings->removeElement($partnerPending)) {
// set the owning side to null (unless already changed)
if ($partnerPending->getPartner() === $this) {
$partnerPending->setPartner(null);
}
}
return $this;
}
public function getPartnerPending(): ?PartnerPending
{
return $this->partnerPending;
}
public function setPartnerPending(?PartnerPending $partnerPending): self
{
// unset the owning side of the relation if necessary
if ($partnerPending === null && $this->partnerPending !== null) {
$this->partnerPending->setUserAccount(null);
}
// set the owning side of the relation if necessary
if ($partnerPending !== null && $partnerPending->getUserAccount() !== $this) {
$partnerPending->setUserAccount($this);
}
$this->partnerPending = $partnerPending;
return $this;
}
public function getPendingNewEmail(): ?string
{
return $this->pendingNewEmail;
}
public function setPendingNewEmail(?string $pendingNewEmail): self
{
$this->pendingNewEmail = $pendingNewEmail;
return $this;
}
public function getValidationToken(): ?string
{
return $this->validationToken;
}
public function setValidationToken(?string $validationToken): self
{
$this->validationToken = $validationToken;
return $this;
}
public function getIsVerified(): ?bool
{
return $this->isVerified;
}
public function isVerified(): bool
{
return $this->isVerified;
}
public function setIsVerified(bool $isVerified): self
{
$this->isVerified = $isVerified;
return $this;
}
/**
* @return Collection|GoodAssignement[]
*/
public function getBuyerGoodAssignements(): Collection
{
return $this->buyerGoodAssignements;
}
public function addBuyerGoodAssignement(GoodAssignement $buyerGoodAssignement): self
{
if (!$this->buyerGoodAssignements->contains($buyerGoodAssignement)) {
$this->buyerGoodAssignements[] = $buyerGoodAssignement;
$buyerGoodAssignement->setBuyer($this);
}
return $this;
}
public function removeBuyerGoodAssignement(GoodAssignement $buyerGoodAssignement): self
{
if ($this->buyerGoodAssignements->removeElement($buyerGoodAssignement)) {
// set the owning side to null (unless already changed)
if ($buyerGoodAssignement->getBuyer() === $this) {
$buyerGoodAssignement->setBuyer(null);
}
}
return $this;
}
/**
* @return Collection|ComplaintLetter[]
*/
public function getComplaintLetters(): Collection
{
return $this->complaintLetters;
}
public function addComplaintLetter(ComplaintLetter $complaintLetter): self
{
if (!$this->complaintLetters->contains($complaintLetter)) {
$this->complaintLetters[] = $complaintLetter;
$complaintLetter->setUser($this);
}
return $this;
}
public function removeComplaintLetter(ComplaintLetter $complaintLetter): self
{
if ($this->complaintLetters->removeElement($complaintLetter)) {
// set the owning side to null (unless already changed)
if ($complaintLetter->getUser() === $this) {
$complaintLetter->setUser(null);
}
}
return $this;
}
public function getPictureFileSize(): ?int
{
return $this->pictureFileSize;
}
public function setPictureFileSize($pictureFileSize): static
{
$this->pictureFileSize = $pictureFileSize;
return $this;
}
public function getPictureFileName(): ?string
{
return $this->pictureFileName;
}
public function setPictureFileName(?string $pictureFileName): static
{
$this->pictureFileName = $pictureFileName;
return $this;
}
public function getPictureFileUpdatedAt(): ?DateTime
{
return $this->pictureFileUpdatedAt;
}
public function setPictureFileUpdatedAt(DateTime $pictureFileUpdatedAt): static
{
$this->pictureFileUpdatedAt = $pictureFileUpdatedAt;
return $this;
}
public function getPictureFile(): ?File
{
return $this->pictureFile;
}
public function setPictureFile(File $file = null): static
{
$this->pictureFile = $file;
if (null !== $file) {
$this->pictureFileUpdatedAt = new DateTime();
}
return $this;
}
public function getItemById(int $id): ?Item
{
return $this->items->filter(function (Item $item) use ($id) {
return $item->getId() === $id;
})->first();
}
public function getResetPasswordRequests(): Collection|array
{
return $this->resetPasswordRequests;
}
public function getChildByName(string $name): ?Child
{
return $this->getChildren()
->filter(fn(Child $children) => $children->getFirstName() . ' ' . $children->getBirthName() === $name)
->first() ?? null;
}
}