src/Entity/ComplaintX.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Validator\ComplaintXDiscoverDates;
  4. use DateTime;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\DBAL\Types\Types;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Symfony\Component\Validator\Constraints as Assert;
  10. #[ORM\Entity(repositoryClass"App\Repository\ComplaintXRepository")]
  11. #[ORM\Table(name"complaint_x")]
  12. #[ComplaintXDiscoverDates(groups: ['complaint:dates'])]
  13. class ComplaintX
  14. {
  15.     public const    STATUS_PAYMENT_PROCESSING   0b000000001;  //1
  16.     public const    STATUS_PAYMENT_ACCEPTED     0b000000010;  //2
  17.     public const    STATUS_DOCUMENT_CHECKED     0b000000100;  //4
  18.     public const    STATUS_PAID                 0b000001000;  //8
  19.     public const    STATUS_SIGN_PENDING         0b000010000;  //16
  20.     public const    STATUS_SIGNED               0b000100000;  //32
  21.     public const    STATUS_CLOSED               0b001000000;  //64
  22.     const STATUS_PAYMENT_PENDING 0;
  23.     const STATUS_PAYMENT_REQUIRE_CAPTURE 1;
  24.     const STATUS_PAYMENT_PAID 2;
  25.     #[ORM\Column(type"string"length255nullabletrue)]
  26.     private ?string $tgiBp;
  27.     #[ORM\Column(type"string"length255nullabletrue)]
  28.     private ?string $tgiPostalCode;
  29.     #[ORM\Column(type"string"length255nullabletrue)]
  30.     private ?string $tgiCommune;
  31.     #[ORM\Column(type"string"length255nullabletrue)]
  32.     private ?string $tgiName;
  33.     #[ORM\Column(type"string"length255nullabletrue)]
  34.     private ?string $tgiAdresses;
  35.     #[ORM\Column(type"string"length255nullabletrue)]
  36.     private ?string $vehicleMore;
  37.     #[ORM\Column(type"string"length255nullabletrue)]
  38.     private ?string $theftType;
  39.     public string $expressStep "";
  40.     public string $expressOwner;
  41.     #[ORM\Column(name"breakingsCarac"type"string"nullabletrue)]
  42.     private ?string $breakingsCarac;
  43.     #[ORM\Column(name"isBreakingsFound"type"boolean"nullabletrue)]
  44.     private ?bool $isBreakingsFound;
  45.     #[ORM\Column(name"factsMore"type"text"nullabletrue)]
  46.     private ?string $factsMore;
  47.     #[ORM\Column(type"string"length255nullabletrue)]
  48.     private ?string $locationType;
  49.     #[ORM\Column(type"string"length255nullabletrue)]
  50.     private ?string $stripeChargeId;
  51.     #[ORM\ManyToOne(targetEntityUser::class, inversedBy"complaintXs")]
  52.     #[ORM\JoinColumn(nullablefalse)]
  53.     private User $user;
  54.     #[ORM\Column(type"datetime")]
  55.     private DateTime $createdAt;
  56.     #[ORM\OneToMany(mappedBy"complaintX"targetEntityComplaintXPhoto::class, cascade: ["persist"'remove'])]
  57.     private Collection|array $complaintXPhotos;
  58.     #[ORM\Column(type"text"nullabletrue)]
  59.     private ?string $nonSavedItem;
  60.     #[ORM\Column(type"text"nullabletrue)]
  61.     private ?string $nonSavedPaymentMethod;
  62.     #[ORM\OneToMany(mappedBy"complaintX"targetEntityComplaintXDocument::class, cascade: ["persist"'remove'])]
  63.     private Collection|array $complaintXDocuments;
  64.     #[ORM\ManyToMany(targetEntityPaymentMethod::class, inversedBy"complaintXs")]
  65.     private Collection|array $paymentMethods;
  66.     #[ORM\ManyToMany(targetEntityItem::class, inversedBy"complaintXs")]
  67.     private Collection|array $items;
  68.     #[ORM\Column(type"integer")]
  69.     #[ORM\Id]
  70.     #[ORM\GeneratedValue(strategy"AUTO")]
  71.     private ?int $id null;
  72.     #[ORM\Column(type"string"nullabletrue)]
  73.     private ?string $whyNoTheft;
  74.     #[ORM\Column(type"string"nullabletrue)]
  75.     private ?string $whyNoneFound;
  76.     #[ORM\Column(type"array"nullabletrue)]
  77.     #[Assert\Choice(callback"getStolenStuffs"multipletrue)]
  78.     private array $stolenStuff;
  79.     #[ORM\ManyToOne(targetEntityVehicle::class, inversedBy"complaintXs")]
  80.     #[ORM\JoinColumn(nullabletrue)]
  81.     private ?Vehicle $vehicle;
  82.     #[ORM\Column(type"string"length255nullabletrue)]
  83.     private ?string $parkingPlaceType;
  84.     #[ORM\Column(type"string"length255nullabletrue)]
  85.     #[Assert\Choice(callback"getVehicleStatutes"multiplefalse)]
  86.     private ?string $vehicleStatut;
  87.     #[ORM\Column(type"string"length255nullabletrue)]
  88.     #[Assert\Choice(callback"getCivilities"multiplefalse)]
  89.     private ?string $moreVehicleCivility;
  90.     #[ORM\Column(type"string"length255nullabletrue)]
  91.     private ?string $moreVehicleFirstName;
  92.     #[ORM\Column(type"string"length255nullabletrue)]
  93.     private ?string $moreVehicleLastName;
  94.     #[ORM\Column(type"string"length255nullabletrue)]
  95.     private ?string $moreVehicleSociety;
  96.     #[ORM\Column(type"string"length255nullabletrue)]
  97.     private ?string $moreVehicleAddress;
  98.     #[ORM\ManyToOne(targetEntityItem::class, cascade: ["persist"], inversedBy"stolenBike")]
  99.     #[Assert\Valid()]
  100.     private ?Item $stolenBike null;
  101.     #[ORM\Column(type"boolean"nullabletrue)]
  102.     private ?bool $isProtectedByAntitheft;
  103.     #[ORM\Column(type"string"length255nullabletrue)]
  104.     #[Assert\Choice(callback"getCategories"multiplefalse)]
  105.     #[Assert\NotBlank(message'Ce champ est obligatoire')]
  106.     private ?string $category;
  107.     #[ORM\Column(type"string"length255nullabletrue)]
  108.     private ?string $degradedItemNature;
  109.     #[ORM\Column(type"string"length255nullabletrue)]
  110.     private ?string $degradedItemStatut;
  111.     #[ORM\Column(type"string"length255nullabletrue)]
  112.     private ?string $degradedType;
  113.     #[ORM\ManyToOne(targetEntityComplaintX::class, inversedBy"complaintXs")]
  114.     #[ORM\JoinColumn(nullabletrue)]
  115.     private ?ComplaintX $complaintX;
  116.     #[ORM\OneToMany(mappedBy"complaintX"targetEntityComplaintX::class, cascade: ["persist"])]
  117.     private Collection|array $complaintXs;
  118.     #[ORM\Column(type"datetime"nullabletrue)]
  119.     private ?DateTime $sentDate;
  120.     #[ORM\Column(type"string"length255nullabletrue)]
  121.     private string $postRegisteredNumber;
  122.     #[ORM\Column(type"datetime"nullabletrue)]
  123.     private ?DateTime $registeredReceiptDate;
  124.     #[ORM\Column(type"text"nullabletrue)]
  125.     private ?string $newDegradation;
  126.     #[ORM\Column(type"boolean")]
  127.     private bool $isDeleted false;
  128.     #[ORM\Column(type"string"length255nullabletrue)]
  129.     private string $stolenVehicleAccessory;
  130.     #[ORM\ManyToOne(targetEntityInsurance::class, inversedBy"complaintXs"cascade: ['persist'])]
  131.     #[ORM\JoinColumn(nullabletrue)]
  132.     private ?Insurance $insurance;
  133.     #[ORM\Column(name"victim"type"string"length255nullabletrue)]
  134.     private ?string $victim null;
  135.     #[ORM\Column(name"declarer"type"string"length255nullabletrue)]
  136.     #[Assert\NotBlank(message'Ce champ est obligatoire'groups: ["complaintx"])]
  137.     private ?string $declarer;
  138.     #[ORM\Column(name"complainantQuality"type"string"length255nullabletrue)]
  139.     #[Assert\NotBlank(message'Ce champ est obligatoire'groups: ["complaintx"])]
  140.     private ?string $complainantQuality;
  141.     #[ORM\Column(name"isInsured"type"boolean"nullabletrue)]
  142.     private ?bool $isInsured;
  143.     #[ORM\Column(name"factsDiscoverDate"type"date"nullabletrue)]
  144.     #[Assert\NotBlank(message'Ce champ est obligatoire'groups: ["complaintx"])]
  145.     private ?DateTime $factsDiscoverDate null;
  146.     #[ORM\Column(name"factsBeginDate"type"date"nullabletrue)]
  147.     #[Assert\NotBlank(message'Ce champ est obligatoire'groups: ["complaintx"])]
  148.     private ?DateTime $factsBeginDate null;
  149.     #[ORM\Column(name"factsEndDate"type"date"nullabletrue)]
  150.     private ?DateTime $factsEndDate null;
  151.     #[ORM\Column(name"factsDiscoverHour"type"datetimetz"nullabletrue)]
  152.     private ?DateTime $factsDiscoverHour null;
  153.     #[ORM\Column(name"factsBeginHour"type"datetimetz"nullabletrue)]
  154.     private ?DateTime $factsBeginHour null;
  155.     #[ORM\Column(name"factsEndHour"type"datetimetz"nullabletrue)]
  156.     private ?DateTime $factsEndHour null;
  157.     #[ORM\Column(name"factsAddress"type"string"length255nullabletrue)]
  158.     #[Assert\NotBlank(message'Ce champ est obligatoire'groups: ["complaintx"])]
  159.     private ?string $factsAddress;
  160.     #[ORM\Column(type"string"length255nullabletrue)]
  161.     private ?string $factsAddressCity;
  162.     #[ORM\Column(name"factsAddressZipCode"type"string"length255nullabletrue)]
  163.     private ?int $factsAddressZipCode;
  164.     #[ORM\Column(name"factsAddressStreetNumber"type"string"length255nullabletrue)]
  165.     private ?int $factsAddressStreetNumber;
  166.     #[ORM\Column(name"factsAddressRoadName"type"string"length255nullabletrue)]
  167.     private ?string $factsAddressRoadName;
  168.     #[ORM\Column(name"discoverCircumstance"type"string"length255nullabletrue)]
  169.     #[Assert\NotBlank(message'Ce champ est obligatoire'groups: ["complaintx"])]
  170.     private ?string $discoverCircumstance;
  171.     #[ORM\Column(name"factsWitnesses"type"text"nullabletrue)]
  172.     private ?string $factsWitnesses;
  173.     #[ORM\Column(name"stealVictim"type"boolean"nullabletrue)]
  174.     private ?bool $stealVictim;
  175.     #[ORM\Column(name"breakingsDegradationsFound"type"string"nullabletrue)]
  176.     private ?string $breakingsDegradationsFound;
  177.     #[ORM\Column(name"prejudiceEstimate"type"decimal"precision10scale2nullabletrue)]
  178.     #[Assert\NotBlank(message'Ce champ est obligatoire'groups: ["complaintx"])]
  179.     private ?string $prejudiceEstimate;
  180.     #[ORM\Column(name"cash"type"string"length255nullabletrue)]
  181.     private ?string $cash;
  182.     #[ORM\Column(type"boolean")]
  183.     private bool $isSigned false;
  184.     #[ORM\ManyToOne]
  185.     private ?SelectValues $factsAttachmentMode null;
  186.     #[ORM\Column(typeTypes::TEXTnullabletrue)]
  187.     private ?string $otherStolenItems null;
  188.     #[ORM\Column(nullabletrue)]
  189.     private ?bool $authorManageToEnter null;
  190.     #[ORM\Column(nullabletrue)]
  191.     private ?bool $isStolenFound null;
  192.     #[ORM\ManyToOne(cascade: ["persist"])]
  193.     #[Assert\Valid()]
  194.     private ?Item $stolenPhone null;
  195.     #[ORM\Column(typeTypes::STRINGlength255nullabletrue)]
  196.     private ?string $paymentIntentId null;
  197.     #[ORM\Column(nullabletrue)]
  198.     private ?int $status null;
  199.     #[ORM\Column(length30nullabletrue)]
  200.     private ?string $paymentIntentStatus null;
  201.     #[ORM\Column(nullabletrue)]
  202.     private ?bool $hasDigitalSignature null;
  203.     #[ORM\Column(length255nullabletrue)]
  204.     private ?string $signatureRequestId null;
  205.     #[ORM\Column(nullabletrue)]
  206.     private ?int $step null;
  207.     #[ORM\Column(length255nullabletrue)]
  208.     private ?string $offerName null;
  209.     /**
  210.      * Get id
  211.      *
  212.      * @return int
  213.      */
  214.     public function getId()
  215.     {
  216.         return $this->id;
  217.     }
  218.     public static function getCivilities()
  219.     {
  220.         $arr = [
  221.             "Monsieur" => "mr",
  222.             "Madame" => "mrs",
  223.         ];
  224.         return $arr;
  225.     }
  226.     public static function getWhyNoneFounds($category 'null')
  227.     {
  228.         if (in_array($category, ['vehicleTheft'])) {
  229.             $arr = [
  230.                 'mais le véhicule était bien fermé à clé et l’auteur a dû utiliser une fausse clé ou un dispositif de crochetage pour l’ouvrir  ',
  231.                 'mais la fourche était bien bloquée par le neiman',
  232.                 'car le véhicule n\'était pas fermé à clé',
  233.                 'car ce véhicule n\'est pas muni d\'un système anti vol',
  234.                 'car ce véhicule ne ferme pas à clé',
  235.             ];
  236.             return array_combine($arr$arr);
  237.         } elseif ($category == 'accessoryVehicleTheft') {
  238.             $arr = [
  239.                 'mais le véhicule était bien fermé à clé et l’auteur a dû utiliser une fausse clé ou un dispositif de crochetage pour l’ouvrir  ',
  240.                 'car le véhicule n’était pas fermé à clé',
  241.                 'car le(s) auteurs(s) ne sont pas rentrés dans le véhicule',
  242.                 'car il s\'agit d\'un deux roues',
  243.                 'car ce véhicule ne se vérouille pas à clé',
  244.             ];
  245.             return array_combine($arr$arr);
  246.         } elseif ($category == 'insideVehicleTheft') {
  247.             $arr = [
  248.                 'mais le véhicule était bien fermé à clé et l’auteur a dû utiliser une fausse clé ou un dispositif de crochetage pour l’ouvrir  ',
  249.                 'mais le top case était vérouillé et l’auteur a dû utiliser un dispositif de crochetage pour l’ouvrir  ',
  250.                 'mais les sacoches étaient vérouillées et l’auteur a dû utiliser un dispositif de crochetage pour l’ouvrir  ',
  251.                 'car le véhicule n’était pas fermé à clé',
  252.                 'car le véhicule ne se vérouille pas à clé',
  253.             ];
  254.             return array_combine($arr$arr);
  255.         } elseif ($category == 'principalResidenceBurglary' || $category == 'secondResidenceBurglary') {
  256.             $arr = [
  257.                 'car mon domicile n’était pas fermé à clé',
  258.                 'car une porte était ouverte ',
  259.                 'car une fenêtre était ouverte ',
  260.                 'car une porte donnant sur le balcon n\'était pas vérouillée',
  261.                 'car une fenêtre donnant sur le balcon était ouverte',
  262.                 'mais mon domicile était bien fermé à clé et le ou les auteurs ont dû utiliser une fausse clé ou un dispositif de crochetage de la sérrure pour pénétrer à l\'intérieur',
  263.             ];
  264.             return array_combine($arr$arr);
  265.         } elseif ($category == 'otherPlaceBurglary') {
  266.             $arr = [
  267.                 'car ce local ne ferme pas à clé',
  268.                 'car ce local n’était pas fermé à clé',
  269.                 'car une porte était ouverte',
  270.                 'car une fenêtre était ouverte',
  271.                 'car ce domicile n’était pas fermé à clé',
  272.                 'car une porte donnant sur le balcon n\'était pas vérouillée',
  273.                 'car une fenêtre donnant sur le balcon était ouverte',
  274.                 'mais ce lieu était bien fermé à clé et le ou les auteurs ont dû utiliser une fausse clé ou un dispositif de crochetage de la sérrure pour pénétrer à l\'intérieur',
  275.             ];
  276.             return array_combine($arr$arr);
  277.         } else {
  278.             $arr = [
  279.                 "car mon domicile n’était pas fermé à clé" => "notLocked",
  280.                 "car une porte ou une fenêtre était ouverte" => "opened",
  281.             ];
  282.             return $arr;
  283.         }
  284.     }
  285.     public static function getStolenStuffs()
  286.     {
  287.         $arr = [
  288.             "Portefeuille" => "wallet",
  289.             "Porte-monnaie" => "purse",
  290.             "Clés" => "keys",
  291.         ];
  292.         return $arr;
  293.     }
  294.     public static function getParkingPlaceTypes()
  295.     {
  296.         $arr = [
  297.             'dans la cour de mon domicile',
  298.             'dans ma cour d’immeuble',
  299.             'dans mon garage',
  300.             'dans un box de parking souterrain',
  301.             'dans un box en extérieur',
  302.             'dans un parking souterrain privé',
  303.             'dans un parking souterrain public',
  304.             'sur la voie publique',
  305.             'sur la voie publique devant mon domicile',
  306.             'sur la voie publique devant mon garage',
  307.             'sur le parking d’un commerce',
  308.             'sur le parking d\'une société',
  309.             'sur le parking d\'un centre commercial',
  310.             'sur mon emplacement de parking extérieur',
  311.             'sur mon emplacement de parking souterrain',
  312.             'sur un chemin privé',
  313.             'sur un espace privé',
  314.             'sur un espace public',
  315.             'sur un parking privé extérieur',
  316.             'sur un parking public extérieur ',
  317.             'sur une voie privée ',
  318.         ];
  319.         return array_combine($arr$arr);
  320.     }
  321.     public static function getVehicleStatutes($user null)
  322.     {
  323.         $arr = [
  324.             'Mon véhicule' => 'mine'
  325.         ];
  326.         if (is_null($user) || ($user && $user->getPartner())) {
  327.             $arr['Le véhicule de mon conjoint'] = 'partner';
  328.         }
  329.         $arr['Un véhicule prêté par un particulier'] = 'loan';
  330.         $arr['Un véhicule prêté par une société / association'] = 'loancomp';
  331.         $arr['Un véhicule de location'] = 'rent';
  332.         $arr['Mon véhicule de fonction'] = 'work';
  333.         $arr['Mon véhicule de service'] = 'service';
  334.         return $arr;
  335.     }
  336.     public static function getWhyNoThefts($category 'null')
  337.     {
  338.         if (in_array($category, ['vehicleTheft''insideVehicleTheft''accessoryVehicleTheft'])) {
  339.             $arr = [
  340.                 "je n’ai constaté aucun vol, mais le véhicule a été entièrement fouillé",
  341.                 "je n’ai constaté aucun vol",
  342.             ];
  343.         } else {
  344.             $arr = [
  345.                 "je n’ai constaté aucun vol",
  346.             ];
  347.         }
  348.         return array_combine($arr$arr);
  349.     }
  350.     public function __construct()
  351.     {
  352.         $this->createdAt = new DateTime();
  353.         $this->items = new ArrayCollection();
  354.         $this->paymentMethods = new ArrayCollection();
  355.         $this->complaintXPhotos = new ArrayCollection();
  356.         $this->complaintXDocuments = new ArrayCollection();
  357.     }
  358.     public function __toString()
  359.     {
  360.         return "#" $this->id " - " $this->createdAt->format("d/m/Y H:i");
  361.     }
  362.     /**
  363.      *
  364.      */
  365.     public static function getTheftTypes()
  366.     {
  367.         $arr = [
  368.             'dans une poche de vêtements',
  369.             'dans une poche de pantalon',
  370.             'dans une poche de veste',
  371.             'dans un portefeuille',
  372.             'de portefeuille',
  373.             'de porte-monnaie ',
  374.             'dans un sac',
  375.             'de sac',
  376.             'dans un sac à main',
  377.             'de sac à main',
  378.             'dans une sacoche',
  379.             'de sacoche',
  380.             'dans un porte document',
  381.             'de porte document',
  382.             'dans un chariot à provision',
  383.             'dans un cabas',
  384.             'de cabas ',
  385.             'de valise',
  386.             'dans une valise',
  387.             'de sac de sport',
  388.             'dans un sac de sport',
  389.             'de sac de voyage',
  390.             'dans un sac de voyage',
  391.             'dans un bureau',
  392.             'sur un bureau',
  393.             'dans un casier',
  394.             'sur une table',
  395.         ];
  396.         return array_combine($arr$arr);
  397.     }
  398.     public static function getBreakingCaracs()
  399.     {
  400.         $arr = [
  401.             "Bloque disque de frein dégradé",
  402.             "Cadenas antivol détruit",
  403.             "Canne de blocage de frein à main forcée",
  404.             "Canne de blocage de volant forcée",
  405.             "Chaine antivol dégradée",
  406.             "Colonne de direction forcée",
  407.             "Dispositif de bloquage de direction détruit",
  408.             "Fils du contacteur Neiman arrachés",
  409.             "Guidon dégradé",
  410.             "Habillage de la colone de direction détruit",
  411.             "Serrure Neiman détruit",
  412.             "U antivol dégradé",
  413.             "Volant forcé",
  414.         ];
  415.         return array_combine($arr$arr);
  416.     }
  417.     public static function getCategories(): array
  418.     {
  419.         $arr = [
  420.             "Cambriolage d'un domicile principal" => "principalResidenceBurglary",
  421.             "Cambriolage d'un domicile secondaire" => "secondResidenceBurglary",
  422.             "Cambriolage d'un autre local" => "otherPlaceBurglary",
  423.             "Cambriolage d'une résidence de vacances" => "vacancyResidenceBurglary",
  424.             "Cambriolage d'une chambre d'hôtel" => "hotelRoomBurglary",
  425.             "Dégradation d'un bien immobilier" => "itemDegradation",
  426.             "Mon véhicule" => "mine",
  427.             "Le véhicule de mon conjoint" => "partner",
  428.             "Un véhicule de location" => "rent",
  429.             "Un véhicule de prêt" => "loan",
  430.             "Un véhicule de fonction" => "work",
  431.             "Un véhicule de service" => "service",
  432.             "Vol de téléphone" => "phoneTheft",
  433.             "Vol simple" => "simpleTheft",
  434.             "Vol de vélo" => "bikeTheft",
  435.             "Vol dans un véhicule" => "insideVehicleTheft",
  436.             "Tentative de vol dans un véhicule" => "insideVehicleAttempt",
  437.             "Vol de pièces sur un véhicule" => "accessoryVehicleTheft",
  438.             "Tentative de vol de véhicule" => "vehicleTheft",
  439.             "Vol de véhicule" => "vehicleTheftTotal",
  440.             "Dégradation de véhicule" => "vehicleDegradation",
  441.             "Plainte complémentaire" => "additionalComplaint",
  442.         ];
  443.         return $arr;
  444.     }
  445.     public static function getCategoriesByFilter(array $filter = [])
  446.     {
  447.         if ($filter['type'] !== null) {
  448.             if ($filter['type'] === 'main') {
  449.                 return [
  450.                     "Dégradation de votre domicile principal"  =>  "itemDegradation",
  451.                 ];
  452.             } elseif ($filter['type'] === 'second') {
  453.                 return [
  454.                     "Dégradation de votre domicile secondaire"  =>  "itemDegradation",
  455.                 ];
  456.             } elseif ($filter['type'] === 'room') {
  457.                 return [
  458.                     "Dégradation de votre local"  =>  "itemDegradation",
  459.                 ];
  460.             }
  461.         }
  462.         $arr = [
  463.             "Dégradation de votre local"  =>  "itemDegradation",
  464.             "Dégradation de votre domicile principal" => "principalResidenceBurglary",
  465.             "Dégradation de votre domicile secondaire" => "secondResidenceBurglary",
  466.             "Dégradation de local" => "otherPlaceBurglary",
  467.             "Dégradation de votre résidence de vacances" => "vacancyResidenceBurglary",
  468.             "Dégradation de votre chambre d'hôtel" => "hotelRoomBurglary",
  469.             "Vol de téléphone mobile" => "phoneTheft",
  470.             "Vol simple" => "simpleTheft",
  471.             "Vol de vélo" => "bikeTheft",
  472.             "Vol dans un véhicule" => "insideVehicleTheft",
  473.             "Tentative de vol dans un véhicule" => "insideVehicleAttempt",
  474.             "Vol de pièces sur un véhicule" => "accessoryVehicleTheft",
  475.             "Tentative de vol d'un véhicule" => "vehicleTheft",
  476.             "Vol de véhicule" => "vehicleTheftTotal",
  477.             "Dégradation de véhicule" => "vehicleDegradation",
  478.             "Plainte complémentaire" => "additionalComplaint",
  479.         ];
  480.         if ($filter['breaking'] && $filter['stealing']) {
  481.             $arr array_merge($arr, [
  482.                 "Vol avec effraction de votre domicile principal" => "principalResidenceBurglary",
  483.                 "Vol avec effraction de votre domicile secondaire" => "secondResidenceBurglary",
  484.                 "Vol avec effraction de votre local" => "otherPlaceBurglary",
  485.                 "Vol avec effraction de votre résidence de vacances" => "vacancyResidenceBurglary",
  486.                 "Vol avec effraction de votre chambre d'hôtel" => "hotelRoomBurglary",
  487.             ]);
  488.         }
  489.         if (!$filter['breaking'] && $filter['stealing']) {
  490.             $arr array_merge($arr, [
  491.                 "Vol sans effraction " => "principalResidenceBurglary",
  492.                 "Vol sans effraction  " => "secondResidenceBurglary",
  493.                 "Vol sans effraction   " => "otherPlaceBurglary",
  494.                 "Vol sans effraction    " => "vacancyResidenceBurglary",
  495.                 "Vol sans effraction     " => "hotelRoomBurglary",
  496.             ]);
  497.         }
  498.         if ($filter['breaking'] && !$filter['stealing']) {
  499.             $arr array_merge($arr, [
  500.                 "Tentative de vol avec effraction" => "principalResidenceBurglary",
  501.                 "Tentative de vol avec effraction " => "secondResidenceBurglary",
  502.                 "Tentative de vol avec effraction  " => "otherPlaceBurglary",
  503.             ]);
  504.         }
  505.         return $arr;
  506.     }
  507.     public function getCategoryDetails(): string
  508.     {
  509.         if ((!$this->isBreakingsFound && $this->isStolenFound) || ($this->isBreakingsFound && !$this->isStolenFound)) {
  510.             switch ($this->category) {
  511.                 case "principalResidenceBurglary":
  512.                     return "Domicile principal";
  513.                 case "secondResidenceBurglary":
  514.                     return "Domicile secondaire";
  515.                 case "otherPlaceBurglary":
  516.                     return "Local";
  517.                 case "vacancyResidenceBurglary":
  518.                     return "Résidence de vacance";
  519.                 case "hotelRoomBurglary":
  520.                     return "Chambre d'hôtel";
  521.             }
  522.         }
  523.         return "";
  524.     }
  525.     public static function getItemNatures()
  526.     {
  527.         $arr = [
  528.             'Boite à lettre',
  529.             'Emplacement de parking',
  530.             'Garage',
  531.             'Grillage de clôture',
  532.             'Mur d’appartement',
  533.             'Mur de clôture',
  534.             'Mur de maison',
  535.             'Portail ',
  536.             'Porte d’entrée',
  537.             'Porte de box',
  538.             'Porte de garage',
  539.             'Portillon',
  540.             'Poteau de clôture',
  541.             'Poubelle',
  542.         ];
  543.         return array_combine($arr$arr);
  544.     }
  545.     /**
  546.      *
  547.      */
  548.     public static function degradedTypes()
  549.     {
  550.         $arr = [
  551.             'Dessins aux feutres',
  552.             'Graffitis',
  553.             'Grillage découpé',
  554.             'Grillage détruit',
  555.             'Inscriptions à la peinture',
  556.             'Inscriptions manuscrites',
  557.             'Rayures',
  558.             'Tags',
  559.             'Textes d’injures',
  560.             'Trace d’incendie',
  561.             'Traces de choc',
  562.             'Traces de combustion légère',
  563.             'Traces de coups',
  564.             'Traces de peinture',
  565.             'Vitres brisées',
  566.         ];
  567.         return array_combine($arr$arr);
  568.     }
  569.     /**
  570.      *
  571.      */
  572.     public static function getStolenVehicleAccessories()
  573.     {
  574.         $arr = [
  575.             'Antenne de toit',
  576.             'Batterie ',
  577.             'Calendre',
  578.             'Capot arrière',
  579.             'Capot avant',
  580.             'Clignotant arrière droit',
  581.             'Clignotant arrière gauche',
  582.             'Clignotant avant droit',
  583.             'Clignotant avant gauche',
  584.             'Coffre à bagages de toit',
  585.             'Elément(s) de carénage ',
  586.             'Elément(s) de carrosserie',
  587.             'Optique de feu arrière de moto/cyclo',
  588.             'Optique de feu arrière droit',
  589.             'Optique de feu arrière gauche',
  590.             'Optique de phare avant droit',
  591.             'Optique de phare avant gauche',
  592.             'Optique de phare moto/cyclo',
  593.             'Optiques de clignotants',
  594.             'Parechoc arrière',
  595.             'Parechoc avant',
  596.             'Plaques d’immatriculation',
  597.             'Pot catalytique ',
  598.             'Pot d’échappement',
  599.             'Rétroviseur droit',
  600.             'Rétroviseurs gauche',
  601.             'Roue(s)',
  602.         ];
  603.         return array_combine($arr$arr);
  604.     }
  605.     /**
  606.      *
  607.      */
  608.     public static function getLocationTypes()
  609.     {
  610.         $arr = [
  611.             'dans la cours de mon immeuble',
  612.             'dans une cours d’immeuble',
  613.             'dans la cours de ma maison',
  614.             'dans le local à vélo de l’immeuble',
  615.             'dans un local à vélo',
  616.             'dans un jardin',
  617.             'dans un local prive',
  618.             'dans un parking prive',
  619.             'dans un parking public',
  620.             'sur la voie publique',
  621.             'devant un commerce ou je faisais des courses',
  622.             'sur le parking d’un commerce',
  623.             'sur le parking d’un centre commercial',
  624.             'sur un espace prive aménagé pour le stationnement des cycles',
  625.             'sur un espace prive non aménagé',
  626.             'sur un espace public aménagé pour le stationnement des cycles',
  627.             'sur un espace public non aménagé',
  628.         ];
  629.         return array_combine($arr$arr);
  630.     }
  631.     /**
  632.      * Set category
  633.      *
  634.      * @param string $category
  635.      *
  636.      * @return ComplaintX
  637.      */
  638.     public function setCategory($category)
  639.     {
  640.         $this->category $category;
  641.         return $this;
  642.     }
  643.     /**
  644.      * Get category
  645.      *
  646.      * @return string
  647.      */
  648.     public function getCategory()
  649.     {
  650.         return $this->category;
  651.     }
  652.     /**
  653.      * Set declarer
  654.      *
  655.      * @param string $declarer
  656.      *
  657.      * @return ComplaintX
  658.      */
  659.     public function setDeclarer($declarer)
  660.     {
  661.         $this->declarer $declarer;
  662.         return $this;
  663.     }
  664.     /**
  665.      * Get declarer
  666.      *
  667.      * @return string
  668.      */
  669.     public function getDeclarer()
  670.     {
  671.         return $this->declarer;
  672.     }
  673.     /**
  674.      * Set complainantQuality
  675.      *
  676.      * @param string $complainantQuality
  677.      *
  678.      * @return ComplaintX
  679.      */
  680.     public function setComplainantQuality($complainantQuality)
  681.     {
  682.         $this->complainantQuality $complainantQuality;
  683.         return $this;
  684.     }
  685.     /**
  686.      * Get complainantQuality
  687.      *
  688.      * @return string
  689.      */
  690.     public function getComplainantQuality()
  691.     {
  692.         return $this->complainantQuality;
  693.     }
  694.     /**
  695.      * Set isInsured
  696.      *
  697.      * @param boolean $isInsured
  698.      *
  699.      * @return ComplaintX
  700.      */
  701.     public function setIsInsured($isInsured)
  702.     {
  703.         $this->isInsured $isInsured;
  704.         return $this;
  705.     }
  706.     /**
  707.      * Get isInsured
  708.      *
  709.      * @return bool
  710.      */
  711.     public function getIsInsured()
  712.     {
  713.         return $this->isInsured;
  714.     }
  715.     /**
  716.      * Set factsDiscoverDate
  717.      *
  718.      * @param DateTime $factsDiscoverDate
  719.      *
  720.      * @return ComplaintX
  721.      */
  722.     public function setFactsDiscoverDate($factsDiscoverDate)
  723.     {
  724.         $this->factsDiscoverDate $factsDiscoverDate;
  725.         return $this;
  726.     }
  727.     /**
  728.      * Get factsDiscoverDate
  729.      *
  730.      * @return DateTime
  731.      */
  732.     public function getFactsDiscoverDate()
  733.     {
  734.         return $this->factsDiscoverDate;
  735.     }
  736.     /**
  737.      * Set factsBeginDate
  738.      *
  739.      * @param DateTime $factsBeginDate
  740.      *
  741.      * @return ComplaintX
  742.      */
  743.     public function setFactsBeginDate($factsBeginDate)
  744.     {
  745.         $this->factsBeginDate $factsBeginDate;
  746.         return $this;
  747.     }
  748.     /**
  749.      * Get factsBeginDate
  750.      *
  751.      * @return DateTime
  752.      */
  753.     public function getFactsBeginDate()
  754.     {
  755.         return $this->factsBeginDate;
  756.     }
  757.     /**
  758.      * Set factsEndDate
  759.      *
  760.      * @param DateTime $factsEndDate
  761.      *
  762.      * @return ComplaintX
  763.      */
  764.     public function setFactsEndDate($factsEndDate)
  765.     {
  766.         $this->factsEndDate $factsEndDate;
  767.         return $this;
  768.     }
  769.     /**
  770.      * Get factsEndDate
  771.      *
  772.      * @return DateTime
  773.      */
  774.     public function getFactsEndDate()
  775.     {
  776.         return $this->factsEndDate;
  777.     }
  778.     /**
  779.      * Set factsAddress
  780.      *
  781.      * @param string $factsAddress
  782.      *
  783.      * @return ComplaintX
  784.      */
  785.     public function setFactsAddress($factsAddress)
  786.     {
  787.         $this->factsAddress $factsAddress;
  788.         return $this;
  789.     }
  790.     /**
  791.      * Get factsAddress
  792.      *
  793.      * @return string
  794.      */
  795.     public function getFactsAddress()
  796.     {
  797.         return $this->factsAddress;
  798.     }
  799.     /**
  800.      * Set factsWitnesses
  801.      *
  802.      * @param string $factsWitnesses
  803.      *
  804.      * @return ComplaintX
  805.      */
  806.     public function setFactsWitnesses($factsWitnesses)
  807.     {
  808.         $this->factsWitnesses $factsWitnesses;
  809.         return $this;
  810.     }
  811.     /**
  812.      * Get factsWitnesses
  813.      *
  814.      * @return string
  815.      */
  816.     public function getFactsWitnesses()
  817.     {
  818.         return $this->factsWitnesses;
  819.     }
  820.     /**
  821.      * Set stealVictim
  822.      *
  823.      * @param boolean $stealVictim
  824.      *
  825.      * @return ComplaintX
  826.      */
  827.     public function setStealVictim($stealVictim)
  828.     {
  829.         $this->stealVictim $stealVictim;
  830.         return $this;
  831.     }
  832.     /**
  833.      * Get stealVictim
  834.      *
  835.      * @return bool
  836.      */
  837.     public function getStealVictim()
  838.     {
  839.         return $this->stealVictim;
  840.     }
  841.     /**
  842.      * Set createdAt
  843.      *
  844.      * @param DateTime $createdAt
  845.      *
  846.      * @return ComplaintX
  847.      */
  848.     public function setCreatedAt($createdAt)
  849.     {
  850.         $this->createdAt $createdAt;
  851.         return $this;
  852.     }
  853.     /**
  854.      * Get createdAt
  855.      *
  856.      * @return DateTime
  857.      */
  858.     public function getCreatedAt()
  859.     {
  860.         return $this->createdAt;
  861.     }
  862.     /**
  863.      * Set prejudiceEstimate
  864.      *
  865.      * @param string $prejudiceEstimate
  866.      *
  867.      * @return ComplaintX
  868.      */
  869.     public function setPrejudiceEstimate($prejudiceEstimate)
  870.     {
  871.         $this->prejudiceEstimate $prejudiceEstimate;
  872.         return $this;
  873.     }
  874.     /**
  875.      * Get prejudiceEstimate
  876.      *
  877.      * @return string
  878.      */
  879.     public function getPrejudiceEstimate()
  880.     {
  881.         return $this->prejudiceEstimate;
  882.     }
  883.     /**
  884.      * Set cash
  885.      *
  886.      * @param string $cash
  887.      *
  888.      * @return ComplaintX
  889.      */
  890.     public function setCash($cash)
  891.     {
  892.         $this->cash $cash;
  893.         return $this;
  894.     }
  895.     /**
  896.      * Get cash
  897.      *
  898.      * @return string
  899.      */
  900.     public function getCash()
  901.     {
  902.         return $this->cash;
  903.     }
  904.     /**
  905.      * Set isSigned
  906.      *
  907.      * @param boolean $isSigned
  908.      *
  909.      * @return ComplaintX
  910.      */
  911.     public function setIsSigned($isSigned)
  912.     {
  913.         $this->isSigned $isSigned;
  914.         return $this;
  915.     }
  916.     /**
  917.      * Get isSigned
  918.      *
  919.      * @return boolean
  920.      */
  921.     public function getIsSigned()
  922.     {
  923.         return $this->isSigned;
  924.     }
  925.     /**
  926.      * Add complaintXPhoto
  927.      *
  928.      * @param \App\Entity\ComplaintXPhoto $complaintXPhoto
  929.      *
  930.      * @return ComplaintX
  931.      */
  932.     public function addComplaintXPhoto(\App\Entity\ComplaintXPhoto $complaintXPhoto)
  933.     {
  934.         $this->complaintXPhotos[] = $complaintXPhoto;
  935.         $complaintXPhoto->setComplaintX($this);
  936.         return $this;
  937.     }
  938.     /**
  939.      * Remove complaintXPhoto
  940.      *
  941.      * @param \App\Entity\ComplaintXPhoto $complaintXPhoto
  942.      */
  943.     public function removeComplaintXPhoto(\App\Entity\ComplaintXPhoto $complaintXPhoto)
  944.     {
  945.         $this->complaintXPhotos->removeElement($complaintXPhoto);
  946.     }
  947.     /**
  948.      * Get complaintXPhotos
  949.      *
  950.      * @return Collection
  951.      */
  952.     public function getComplaintXPhotos()
  953.     {
  954.         return $this->complaintXPhotos;
  955.     }
  956.     /**
  957.      * Add complaintXDocument
  958.      *
  959.      * @param \App\Entity\ComplaintXDocument $complaintXDocument
  960.      *
  961.      * @return ComplaintX
  962.      */
  963.     public function addComplaintXDocument(\App\Entity\ComplaintXDocument $complaintXDocument)
  964.     {
  965.         $this->complaintXDocuments[] = $complaintXDocument;
  966.         $complaintXDocument->setComplaintX($this);
  967.         return $this;
  968.     }
  969.     /**
  970.      * Remove complaintXDocument
  971.      *
  972.      * @param \App\Entity\ComplaintXDocument $complaintXDocument
  973.      */
  974.     public function removeComplaintXDocument(\App\Entity\ComplaintXDocument $complaintXDocument)
  975.     {
  976.         $this->complaintXDocuments->removeElement($complaintXDocument);
  977.     }
  978.     /**
  979.      * Get complaintXDocuments
  980.      *
  981.      * @return Collection
  982.      */
  983.     public function getComplaintXDocuments()
  984.     {
  985.         return $this->complaintXDocuments;
  986.     }
  987.     /**
  988.      * Add item
  989.      *
  990.      * @param \App\Entity\Item $item
  991.      *
  992.      * @return ComplaintX
  993.      */
  994.     public function addItem(\App\Entity\Item $item)
  995.     {
  996.         $this->items[] = $item;
  997.         return $this;
  998.     }
  999.     /**
  1000.      * Remove item
  1001.      *
  1002.      * @param \App\Entity\Item $item
  1003.      */
  1004.     public function removeItem(\App\Entity\Item $item)
  1005.     {
  1006.         $this->items->removeElement($item);
  1007.     }
  1008.     /**
  1009.      * Get items
  1010.      *
  1011.      * @return Collection
  1012.      */
  1013.     public function getItems()
  1014.     {
  1015.         return $this->items;
  1016.     }
  1017.     /**
  1018.      * Set user
  1019.      *
  1020.      * @param \App\Entity\User $user
  1021.      *
  1022.      * @return ComplaintX
  1023.      */
  1024.     public function setUser(\App\Entity\User $user)
  1025.     {
  1026.         $this->user $user;
  1027.         return $this;
  1028.     }
  1029.     /**
  1030.      * Get user
  1031.      *
  1032.      * @return \App\Entity\User
  1033.      */
  1034.     public function getUser()
  1035.     {
  1036.         return $this->user;
  1037.     }
  1038.     /**
  1039.      * Set stripeChargeId
  1040.      *
  1041.      * @param string $stripeChargeId
  1042.      *
  1043.      * @return ComplaintX
  1044.      */
  1045.     public function setStripeChargeId($stripeChargeId)
  1046.     {
  1047.         $this->stripeChargeId $stripeChargeId;
  1048.         return $this;
  1049.     }
  1050.     /**
  1051.      * Get stripeChargeId
  1052.      *
  1053.      * @return string
  1054.      */
  1055.     public function getStripeChargeId()
  1056.     {
  1057.         return $this->stripeChargeId;
  1058.     }
  1059.     /**
  1060.      * Set nonSavedItem
  1061.      *
  1062.      * @param string $nonSavedItem
  1063.      *
  1064.      * @return ComplaintX
  1065.      */
  1066.     public function setNonSavedItem($nonSavedItem)
  1067.     {
  1068.         $this->nonSavedItem $nonSavedItem;
  1069.         return $this;
  1070.     }
  1071.     /**
  1072.      * Get nonSavedItem
  1073.      *
  1074.      * @return string
  1075.      */
  1076.     public function getNonSavedItem()
  1077.     {
  1078.         return $this->nonSavedItem;
  1079.     }
  1080.     /**
  1081.      * Set nonSavedPaymentMethod
  1082.      *
  1083.      * @param string $nonSavedPaymentMethod
  1084.      *
  1085.      * @return ComplaintX
  1086.      */
  1087.     public function setNonSavedPaymentMethod($nonSavedPaymentMethod)
  1088.     {
  1089.         $this->nonSavedPaymentMethod $nonSavedPaymentMethod;
  1090.         return $this;
  1091.     }
  1092.     /**
  1093.      * Get nonSavedPaymentMethod
  1094.      *
  1095.      * @return string
  1096.      */
  1097.     public function getNonSavedPaymentMethod()
  1098.     {
  1099.         return $this->nonSavedPaymentMethod;
  1100.     }
  1101.     /**
  1102.      * Add paymentMethod
  1103.      *
  1104.      * @param \App\Entity\PaymentMethod $paymentMethod
  1105.      *
  1106.      * @return ComplaintX
  1107.      */
  1108.     public function addPaymentMethod(\App\Entity\PaymentMethod $paymentMethod)
  1109.     {
  1110.         $this->paymentMethods[] = $paymentMethod;
  1111.         return $this;
  1112.     }
  1113.     /**
  1114.      * Remove paymentMethod
  1115.      *
  1116.      * @param \App\Entity\PaymentMethod $paymentMethod
  1117.      */
  1118.     public function removePaymentMethod(\App\Entity\PaymentMethod $paymentMethod)
  1119.     {
  1120.         $this->paymentMethods->removeElement($paymentMethod);
  1121.     }
  1122.     /**
  1123.      * Get paymentMethods
  1124.      *
  1125.      * @return Collection
  1126.      */
  1127.     public function getPaymentMethods()
  1128.     {
  1129.         return $this->paymentMethods;
  1130.     }
  1131.     /**
  1132.      * Set stolenStuff
  1133.      *
  1134.      * @param array $stolenStuff
  1135.      *
  1136.      * @return ComplaintX
  1137.      */
  1138.     public function setStolenStuff($stolenStuff)
  1139.     {
  1140.         $this->stolenStuff $stolenStuff;
  1141.         return $this;
  1142.     }
  1143.     /**
  1144.      * Get stolenStuff
  1145.      *
  1146.      * @return array
  1147.      */
  1148.     public function getStolenStuff()
  1149.     {
  1150.         return $this->stolenStuff;
  1151.     }
  1152.     /**
  1153.      * Set parkingPlaceType
  1154.      *
  1155.      * @param string $parkingPlaceType
  1156.      *
  1157.      * @return ComplaintX
  1158.      */
  1159.     public function setParkingPlaceType($parkingPlaceType)
  1160.     {
  1161.         $this->parkingPlaceType $parkingPlaceType;
  1162.         return $this;
  1163.     }
  1164.     /**
  1165.      * Get parkingPlaceType
  1166.      *
  1167.      * @return string
  1168.      */
  1169.     public function getParkingPlaceType()
  1170.     {
  1171.         return $this->parkingPlaceType;
  1172.     }
  1173.     /**
  1174.      * Set vehicleStatut
  1175.      *
  1176.      * @param string $vehicleStatut
  1177.      *
  1178.      * @return ComplaintX
  1179.      */
  1180.     public function setVehicleStatut($vehicleStatut)
  1181.     {
  1182.         $this->vehicleStatut $vehicleStatut;
  1183.         return $this;
  1184.     }
  1185.     /**
  1186.      * Get vehicleStatut
  1187.      *
  1188.      * @return string
  1189.      */
  1190.     public function getVehicleStatut()
  1191.     {
  1192.         return $this->vehicleStatut;
  1193.     }
  1194.     /**
  1195.      * Set stolenBike
  1196.      *
  1197.      * @param string $stolenBike
  1198.      *
  1199.      * @return ComplaintX
  1200.      */
  1201.     public function setStolenBike($stolenBike)
  1202.     {
  1203.         $this->stolenBike $stolenBike;
  1204.         return $this;
  1205.     }
  1206.     /**
  1207.      * Get stolenBike
  1208.      *
  1209.      * @return string
  1210.      */
  1211.     public function getStolenBike()
  1212.     {
  1213.         return $this->stolenBike;
  1214.     }
  1215.     /**
  1216.      * Set isProtectedByAntitheft
  1217.      *
  1218.      * @param boolean $isProtectedByAntitheft
  1219.      *
  1220.      * @return ComplaintX
  1221.      */
  1222.     public function setIsProtectedByAntitheft($isProtectedByAntitheft)
  1223.     {
  1224.         $this->isProtectedByAntitheft $isProtectedByAntitheft;
  1225.         return $this;
  1226.     }
  1227.     /**
  1228.      * Get isProtectedByAntitheft
  1229.      *
  1230.      * @return boolean
  1231.      */
  1232.     public function getIsProtectedByAntitheft()
  1233.     {
  1234.         return $this->isProtectedByAntitheft;
  1235.     }
  1236.     /**
  1237.      * Set degradedItemNature
  1238.      *
  1239.      * @param string $degradedItemNature
  1240.      *
  1241.      * @return ComplaintX
  1242.      */
  1243.     public function setDegradedItemNature($degradedItemNature)
  1244.     {
  1245.         $this->degradedItemNature $degradedItemNature;
  1246.         return $this;
  1247.     }
  1248.     /**
  1249.      * Get degradedItemNature
  1250.      *
  1251.      * @return string
  1252.      */
  1253.     public function getDegradedItemNature()
  1254.     {
  1255.         return $this->degradedItemNature;
  1256.     }
  1257.     /**
  1258.      * Set degradedItemStatut
  1259.      *
  1260.      * @param string $degradedItemStatut
  1261.      *
  1262.      * @return ComplaintX
  1263.      */
  1264.     public function setDegradedItemStatut($degradedItemStatut)
  1265.     {
  1266.         $this->degradedItemStatut $degradedItemStatut;
  1267.         return $this;
  1268.     }
  1269.     /**
  1270.      * Get degradedItemStatut
  1271.      *
  1272.      * @return string
  1273.      */
  1274.     public function getDegradedItemStatut()
  1275.     {
  1276.         return $this->degradedItemStatut;
  1277.     }
  1278.     /**
  1279.      * Set degradedType
  1280.      *
  1281.      * @param string $degradedType
  1282.      *
  1283.      * @return ComplaintX
  1284.      */
  1285.     public function setDegradedType($degradedType)
  1286.     {
  1287.         $this->degradedType $degradedType;
  1288.         return $this;
  1289.     }
  1290.     /**
  1291.      * Get degradedType
  1292.      *
  1293.      * @return string
  1294.      */
  1295.     public function getDegradedType()
  1296.     {
  1297.         return $this->degradedType;
  1298.     }
  1299.     /**
  1300.      * Set sentDate
  1301.      *
  1302.      * @param DateTime $sentDate
  1303.      *
  1304.      * @return ComplaintX
  1305.      */
  1306.     public function setSentDate($sentDate)
  1307.     {
  1308.         $this->sentDate $sentDate;
  1309.         return $this;
  1310.     }
  1311.     /**
  1312.      * Get sentDate
  1313.      *
  1314.      * @return DateTime
  1315.      */
  1316.     public function getSentDate()
  1317.     {
  1318.         return $this->sentDate;
  1319.     }
  1320.     /**
  1321.      * Set postRegisteredNumber
  1322.      *
  1323.      * @param string $postRegisteredNumber
  1324.      *
  1325.      * @return ComplaintX
  1326.      */
  1327.     public function setPostRegisteredNumber($postRegisteredNumber)
  1328.     {
  1329.         $this->postRegisteredNumber $postRegisteredNumber;
  1330.         return $this;
  1331.     }
  1332.     /**
  1333.      * Get postRegisteredNumber
  1334.      *
  1335.      * @return string
  1336.      */
  1337.     public function getPostRegisteredNumber()
  1338.     {
  1339.         return $this->postRegisteredNumber;
  1340.     }
  1341.     /**
  1342.      * Set registeredReceiptDate
  1343.      *
  1344.      * @param DateTime $registeredReceiptDate
  1345.      *
  1346.      * @return ComplaintX
  1347.      */
  1348.     public function setRegisteredReceiptDate($registeredReceiptDate)
  1349.     {
  1350.         $this->registeredReceiptDate $registeredReceiptDate;
  1351.         return $this;
  1352.     }
  1353.     /**
  1354.      * Get registeredReceiptDate
  1355.      *
  1356.      * @return DateTime
  1357.      */
  1358.     public function getRegisteredReceiptDate()
  1359.     {
  1360.         return $this->registeredReceiptDate;
  1361.     }
  1362.     /**
  1363.      * Set newDegradation
  1364.      *
  1365.      * @param string $newDegradation
  1366.      *
  1367.      * @return ComplaintX
  1368.      */
  1369.     public function setNewDegradation($newDegradation)
  1370.     {
  1371.         $this->newDegradation $newDegradation;
  1372.         return $this;
  1373.     }
  1374.     /**
  1375.      * Get newDegradation
  1376.      *
  1377.      * @return string
  1378.      */
  1379.     public function getNewDegradation()
  1380.     {
  1381.         return $this->newDegradation;
  1382.     }
  1383.     /**
  1384.      * Set isDeleted
  1385.      *
  1386.      * @param boolean $isDeleted
  1387.      *
  1388.      * @return ComplaintX
  1389.      */
  1390.     public function setIsDeleted($isDeleted)
  1391.     {
  1392.         $this->isDeleted $isDeleted;
  1393.         return $this;
  1394.     }
  1395.     /**
  1396.      * Get isDeleted
  1397.      *
  1398.      * @return boolean
  1399.      */
  1400.     public function getIsDeleted()
  1401.     {
  1402.         return $this->isDeleted;
  1403.     }
  1404.     /**
  1405.      * Set stolenVehicleAccessory
  1406.      *
  1407.      * @param string $stolenVehicleAccessory
  1408.      *
  1409.      * @return ComplaintX
  1410.      */
  1411.     public function setStolenVehicleAccessory($stolenVehicleAccessory)
  1412.     {
  1413.         $this->stolenVehicleAccessory $stolenVehicleAccessory;
  1414.         return $this;
  1415.     }
  1416.     /**
  1417.      * Get stolenVehicleAccessory
  1418.      *
  1419.      * @return string
  1420.      */
  1421.     public function getStolenVehicleAccessory()
  1422.     {
  1423.         return $this->stolenVehicleAccessory;
  1424.     }
  1425.     /**
  1426.      * Set vehicle
  1427.      *
  1428.      * @param \App\Entity\Vehicle $vehicle
  1429.      *
  1430.      * @return ComplaintX
  1431.      */
  1432.     public function setVehicle(\App\Entity\Vehicle $vehicle null)
  1433.     {
  1434.         $this->vehicle $vehicle;
  1435.         return $this;
  1436.     }
  1437.     /**
  1438.      * Get vehicle
  1439.      *
  1440.      * @return \App\Entity\Vehicle
  1441.      */
  1442.     public function getVehicle()
  1443.     {
  1444.         return $this->vehicle;
  1445.     }
  1446.     /**
  1447.      * Set complaintX
  1448.      *
  1449.      * @param \App\Entity\ComplaintX $complaintX
  1450.      *
  1451.      * @return ComplaintX
  1452.      */
  1453.     public function setComplaintX(\App\Entity\ComplaintX $complaintX null)
  1454.     {
  1455.         $this->complaintX $complaintX;
  1456.         return $this;
  1457.     }
  1458.     /**
  1459.      * Get complaintX
  1460.      *
  1461.      * @return \App\Entity\ComplaintX
  1462.      */
  1463.     public function getComplaintX()
  1464.     {
  1465.         return $this->complaintX;
  1466.     }
  1467.     /**
  1468.      * Add complaintX
  1469.      *
  1470.      * @param \App\Entity\ComplaintX $complaintX
  1471.      *
  1472.      * @return ComplaintX
  1473.      */
  1474.     public function addComplaintX(\App\Entity\ComplaintX $complaintX)
  1475.     {
  1476.         $this->complaintXs[] = $complaintX;
  1477.         return $this;
  1478.     }
  1479.     /**
  1480.      * Remove complaintX
  1481.      *
  1482.      * @param \App\Entity\ComplaintX $complaintX
  1483.      */
  1484.     public function removeComplaintX(\App\Entity\ComplaintX $complaintX)
  1485.     {
  1486.         $this->complaintXs->removeElement($complaintX);
  1487.     }
  1488.     /**
  1489.      * Get complaintXs
  1490.      *
  1491.      * @return Collection
  1492.      */
  1493.     public function getComplaintXs()
  1494.     {
  1495.         return $this->complaintXs;
  1496.     }
  1497.     /**
  1498.      * Set insurance
  1499.      *
  1500.      * @param \App\Entity\Insurance $insurance
  1501.      *
  1502.      * @return ComplaintX
  1503.      */
  1504.     public function setInsurance(\App\Entity\Insurance $insurance null)
  1505.     {
  1506.         $this->insurance $insurance;
  1507.         return $this;
  1508.     }
  1509.     /**
  1510.      * Get insurance
  1511.      *
  1512.      * @return \App\Entity\Insurance
  1513.      */
  1514.     public function getInsurance()
  1515.     {
  1516.         return $this->insurance;
  1517.     }
  1518.     /**
  1519.      * Set breakingsDegradationsFound
  1520.      *
  1521.      * @param array $breakingsDegradationsFound
  1522.      *
  1523.      * @return ComplaintX
  1524.      */
  1525.     public function setBreakingsDegradationsFound($breakingsDegradationsFound)
  1526.     {
  1527.         $this->breakingsDegradationsFound $breakingsDegradationsFound;
  1528.         return $this;
  1529.     }
  1530.     /**
  1531.      * Get breakingsDegradationsFound
  1532.      *
  1533.      * @return array
  1534.      */
  1535.     public function getBreakingsDegradationsFound()
  1536.     {
  1537.         return $this->breakingsDegradationsFound;
  1538.     }
  1539.     /**
  1540.      * Set discoverCircumstance
  1541.      *
  1542.      * @param string $discoverCircumstance
  1543.      *
  1544.      * @return ComplaintX
  1545.      */
  1546.     public function setDiscoverCircumstance($discoverCircumstance)
  1547.     {
  1548.         $this->discoverCircumstance $discoverCircumstance;
  1549.         return $this;
  1550.     }
  1551.     /**
  1552.      * Get discoverCircumstance
  1553.      *
  1554.      * @return string
  1555.      */
  1556.     public function getDiscoverCircumstance()
  1557.     {
  1558.         return $this->discoverCircumstance;
  1559.     }
  1560.     /**
  1561.      * Set factsMore.
  1562.      *
  1563.      * @param string|null $factsMore
  1564.      *
  1565.      * @return ComplaintX
  1566.      */
  1567.     public function setFactsMore($factsMore null)
  1568.     {
  1569.         $this->factsMore $factsMore;
  1570.         return $this;
  1571.     }
  1572.     /**
  1573.      * Get factsMore.
  1574.      *
  1575.      * @return string|null
  1576.      */
  1577.     public function getFactsMore()
  1578.     {
  1579.         return $this->factsMore;
  1580.     }
  1581.     /**
  1582.      * Set isBreakingsFound.
  1583.      *
  1584.      * @param bool $isBreakingsFound
  1585.      *
  1586.      * @return ComplaintX
  1587.      */
  1588.     public function setIsBreakingsFound($isBreakingsFound)
  1589.     {
  1590.         $this->isBreakingsFound $isBreakingsFound;
  1591.         return $this;
  1592.     }
  1593.     /**
  1594.      * Get isBreakingsFound.
  1595.      *
  1596.      * @return bool
  1597.      */
  1598.     public function getIsBreakingsFound()
  1599.     {
  1600.         return $this->isBreakingsFound;
  1601.     }
  1602.     /**
  1603.      * Set whyNoneFound.
  1604.      *
  1605.      * @param string|null $whyNoneFound
  1606.      *
  1607.      * @return ComplaintX
  1608.      */
  1609.     public function setWhyNoneFound($whyNoneFound null)
  1610.     {
  1611.         $this->whyNoneFound $whyNoneFound;
  1612.         return $this;
  1613.     }
  1614.     /**
  1615.      * Get whyNoneFound.
  1616.      *
  1617.      * @return string|null
  1618.      */
  1619.     public function getWhyNoneFound()
  1620.     {
  1621.         return $this->whyNoneFound;
  1622.     }
  1623.     /**
  1624.      * Set moreVehicleCivility.
  1625.      *
  1626.      * @param string|null $moreVehicleCivility
  1627.      *
  1628.      * @return ComplaintX
  1629.      */
  1630.     public function setMoreVehicleCivility($moreVehicleCivility null)
  1631.     {
  1632.         $this->moreVehicleCivility $moreVehicleCivility;
  1633.         return $this;
  1634.     }
  1635.     /**
  1636.      * Get moreVehicleCivility.
  1637.      *
  1638.      * @return string|null
  1639.      */
  1640.     public function getMoreVehicleCivility()
  1641.     {
  1642.         return $this->moreVehicleCivility;
  1643.     }
  1644.     /**
  1645.      * Set moreVehicleFirstName.
  1646.      *
  1647.      * @param string|null $moreVehicleFirstName
  1648.      *
  1649.      * @return ComplaintX
  1650.      */
  1651.     public function setMoreVehicleFirstName($moreVehicleFirstName null)
  1652.     {
  1653.         $this->moreVehicleFirstName $moreVehicleFirstName;
  1654.         return $this;
  1655.     }
  1656.     /**
  1657.      * Get moreVehicleFirstName.
  1658.      *
  1659.      * @return string|null
  1660.      */
  1661.     public function getMoreVehicleFirstName()
  1662.     {
  1663.         return $this->moreVehicleFirstName;
  1664.     }
  1665.     /**
  1666.      * Set moreVehicleLastName.
  1667.      *
  1668.      * @param string|null $moreVehicleLastName
  1669.      *
  1670.      * @return ComplaintX
  1671.      */
  1672.     public function setMoreVehicleLastName($moreVehicleLastName null)
  1673.     {
  1674.         $this->moreVehicleLastName $moreVehicleLastName;
  1675.         return $this;
  1676.     }
  1677.     /**
  1678.      * Get moreVehicleLastName.
  1679.      *
  1680.      * @return string|null
  1681.      */
  1682.     public function getMoreVehicleLastName()
  1683.     {
  1684.         return $this->moreVehicleLastName;
  1685.     }
  1686.     /**
  1687.      * Set moreVehicleSociety.
  1688.      *
  1689.      * @param string|null $moreVehicleSociety
  1690.      *
  1691.      * @return ComplaintX
  1692.      */
  1693.     public function setMoreVehicleSociety($moreVehicleSociety null)
  1694.     {
  1695.         $this->moreVehicleSociety $moreVehicleSociety;
  1696.         return $this;
  1697.     }
  1698.     /**
  1699.      * Get moreVehicleSociety.
  1700.      *
  1701.      * @return string|null
  1702.      */
  1703.     public function getMoreVehicleSociety()
  1704.     {
  1705.         return $this->moreVehicleSociety;
  1706.     }
  1707.     /**
  1708.      * Set moreVehicleAddress.
  1709.      *
  1710.      * @param string|null $moreVehicleAddress
  1711.      *
  1712.      * @return ComplaintX
  1713.      */
  1714.     public function setMoreVehicleAddress($moreVehicleAddress null)
  1715.     {
  1716.         $this->moreVehicleAddress $moreVehicleAddress;
  1717.         return $this;
  1718.     }
  1719.     /**
  1720.      * Get moreVehicleAddress.
  1721.      *
  1722.      * @return string|null
  1723.      */
  1724.     public function getMoreVehicleAddress()
  1725.     {
  1726.         return $this->moreVehicleAddress;
  1727.     }
  1728.     /**
  1729.      * Set victim.
  1730.      *
  1731.      * @param string|null $victim
  1732.      *
  1733.      * @return ComplaintX
  1734.      */
  1735.     public function setVictim($victim null)
  1736.     {
  1737.         $this->victim $victim;
  1738.         return $this;
  1739.     }
  1740.     /**
  1741.      * Get victim.
  1742.      *
  1743.      * @return string|null
  1744.      */
  1745.     public function getVictim()
  1746.     {
  1747.         return $this->victim;
  1748.     }
  1749.     /**
  1750.      * Set locationType.
  1751.      *
  1752.      * @param string|null $locationType
  1753.      *
  1754.      * @return ComplaintX
  1755.      */
  1756.     public function setLocationType($locationType null)
  1757.     {
  1758.         $this->locationType $locationType;
  1759.         return $this;
  1760.     }
  1761.     /**
  1762.      * Get locationType.
  1763.      *
  1764.      * @return string|null
  1765.      */
  1766.     public function getLocationType()
  1767.     {
  1768.         return $this->locationType;
  1769.     }
  1770.     /**
  1771.      * Set theftType.
  1772.      *
  1773.      * @param string|null $theftType
  1774.      *
  1775.      * @return ComplaintX
  1776.      */
  1777.     public function setTheftType($theftType null)
  1778.     {
  1779.         $this->theftType $theftType;
  1780.         return $this;
  1781.     }
  1782.     /**
  1783.      * Get theftType.
  1784.      *
  1785.      * @return string|null
  1786.      */
  1787.     public function getTheftType()
  1788.     {
  1789.         return $this->theftType;
  1790.     }
  1791.     /**
  1792.      * Set factsDiscoverHour.
  1793.      *
  1794.      * @param DateTime|null $factsDiscoverHour
  1795.      *
  1796.      * @return ComplaintX
  1797.      */
  1798.     public function setFactsDiscoverHour($factsDiscoverHour null)
  1799.     {
  1800.         $this->factsDiscoverHour $factsDiscoverHour;
  1801.         return $this;
  1802.     }
  1803.     /**
  1804.      * Get factsDiscoverHour.
  1805.      *
  1806.      * @return DateTime|null
  1807.      */
  1808.     public function getFactsDiscoverHour()
  1809.     {
  1810.         return $this->factsDiscoverHour;
  1811.     }
  1812.     /**
  1813.      * Set factsBeginHour.
  1814.      *
  1815.      * @param DateTime|null $factsBeginHour
  1816.      *
  1817.      * @return ComplaintX
  1818.      */
  1819.     public function setFactsBeginHour($factsBeginHour null)
  1820.     {
  1821.         $this->factsBeginHour $factsBeginHour;
  1822.         return $this;
  1823.     }
  1824.     /**
  1825.      * Get factsBeginHour.
  1826.      *
  1827.      * @return DateTime|null
  1828.      */
  1829.     public function getFactsBeginHour()
  1830.     {
  1831.         return $this->factsBeginHour;
  1832.     }
  1833.     /**
  1834.      * Set factsEndHour.
  1835.      *
  1836.      * @param DateTime|null $factsEndHour
  1837.      *
  1838.      * @return ComplaintX
  1839.      */
  1840.     public function setFactsEndHour($factsEndHour null)
  1841.     {
  1842.         $this->factsEndHour $factsEndHour;
  1843.         return $this;
  1844.     }
  1845.     /**
  1846.      * Get factsEndHour.
  1847.      *
  1848.      * @return DateTime|null
  1849.      */
  1850.     public function getFactsEndHour()
  1851.     {
  1852.         return $this->factsEndHour;
  1853.     }
  1854.     /**
  1855.      * Set breakingsCarac.
  1856.      *
  1857.      * @param string|null $breakingsCarac
  1858.      *
  1859.      * @return ComplaintX
  1860.      */
  1861.     public function setBreakingsCarac($breakingsCarac null)
  1862.     {
  1863.         $this->breakingsCarac $breakingsCarac;
  1864.         return $this;
  1865.     }
  1866.     /**
  1867.      * Get breakingsCarac.
  1868.      *
  1869.      * @return string|null
  1870.      */
  1871.     public function getBreakingsCarac()
  1872.     {
  1873.         return $this->breakingsCarac;
  1874.     }
  1875.     /**
  1876.      * Set whyNoTheft.
  1877.      *
  1878.      * @param string|null $whyNoTheft
  1879.      *
  1880.      * @return ComplaintX
  1881.      */
  1882.     public function setWhyNoTheft($whyNoTheft null)
  1883.     {
  1884.         $this->whyNoTheft $whyNoTheft;
  1885.         return $this;
  1886.     }
  1887.     /**
  1888.      * Get whyNoTheft.
  1889.      *
  1890.      * @return string|null
  1891.      */
  1892.     public function getWhyNoTheft()
  1893.     {
  1894.         return $this->whyNoTheft;
  1895.     }
  1896.     /**
  1897.      * Set vehicleMore.
  1898.      *
  1899.      * @param string|null $vehicleMore
  1900.      *
  1901.      * @return ComplaintX
  1902.      */
  1903.     public function setVehicleMore($vehicleMore null)
  1904.     {
  1905.         $this->vehicleMore $vehicleMore;
  1906.         return $this;
  1907.     }
  1908.     /**
  1909.      * Get vehicleMore.
  1910.      *
  1911.      * @return string|null
  1912.      */
  1913.     public function getVehicleMore()
  1914.     {
  1915.         return $this->vehicleMore;
  1916.     }
  1917.     /**
  1918.      * Set tgiPostalCode.
  1919.      *
  1920.      * @param string|null $tgiPostalCode
  1921.      *
  1922.      * @return ComplaintX
  1923.      */
  1924.     public function setTgiPostalCode($tgiPostalCode null)
  1925.     {
  1926.         $this->tgiPostalCode $tgiPostalCode;
  1927.         return $this;
  1928.     }
  1929.     /**
  1930.      * Get tgiPostalCode.
  1931.      *
  1932.      * @return string|null
  1933.      */
  1934.     public function getTgiPostalCode()
  1935.     {
  1936.         return $this->tgiPostalCode;
  1937.     }
  1938.     /**
  1939.      * Set tgiCommune.
  1940.      *
  1941.      * @param string|null $tgiCommune
  1942.      *
  1943.      * @return ComplaintX
  1944.      */
  1945.     public function setTgiCommune($tgiCommune null)
  1946.     {
  1947.         $this->tgiCommune $tgiCommune;
  1948.         return $this;
  1949.     }
  1950.     /**
  1951.      * Get tgiCommune.
  1952.      *
  1953.      * @return string|null
  1954.      */
  1955.     public function getTgiCommune()
  1956.     {
  1957.         return $this->tgiCommune;
  1958.     }
  1959.     /**
  1960.      * Set tgiName.
  1961.      *
  1962.      * @param string|null $tgiName
  1963.      *
  1964.      * @return ComplaintX
  1965.      */
  1966.     public function setTgiName($tgiName null)
  1967.     {
  1968.         $this->tgiName $tgiName;
  1969.         return $this;
  1970.     }
  1971.     /**
  1972.      * Get tgiName.
  1973.      *
  1974.      * @return string|null
  1975.      */
  1976.     public function getTgiName()
  1977.     {
  1978.         return $this->tgiName;
  1979.     }
  1980.     /**
  1981.      * Set tgiAdresses.
  1982.      *
  1983.      * @param string|null $tgiAdresses
  1984.      *
  1985.      * @return ComplaintX
  1986.      */
  1987.     public function setTgiAdresses($tgiAdresses null)
  1988.     {
  1989.         $this->tgiAdresses $tgiAdresses;
  1990.         return $this;
  1991.     }
  1992.     /**
  1993.      * Get tgiAdresses.
  1994.      *
  1995.      * @return string|null
  1996.      */
  1997.     public function getTgiAdresses()
  1998.     {
  1999.         return $this->tgiAdresses;
  2000.     }
  2001.     /**
  2002.      * Set tgiBp.
  2003.      *
  2004.      * @param string|null $tgiBp
  2005.      *
  2006.      * @return ComplaintX
  2007.      */
  2008.     public function setTgiBp($tgiBp null)
  2009.     {
  2010.         $this->tgiBp $tgiBp;
  2011.         return $this;
  2012.     }
  2013.     /**
  2014.      * Get tgiBp.
  2015.      *
  2016.      * @return string|null
  2017.      */
  2018.     public function getTgiBp()
  2019.     {
  2020.         return $this->tgiBp;
  2021.     }
  2022.     /**
  2023.      * Set factsAddressCity.
  2024.      *
  2025.      * @param string|null $factsAddressCity
  2026.      *
  2027.      * @return ComplaintX
  2028.      */
  2029.     public function setFactsAddressCity($factsAddressCity null)
  2030.     {
  2031.         $this->factsAddressCity $factsAddressCity;
  2032.         return $this;
  2033.     }
  2034.     /**
  2035.      * Get factsAddressCity.
  2036.      *
  2037.      * @return string|null
  2038.      */
  2039.     public function getFactsAddressCity()
  2040.     {
  2041.         return $this->factsAddressCity;
  2042.     }
  2043.     /**
  2044.      * Set factsAddressZipCode.
  2045.      *
  2046.      * @param string|null $factsAddressZipCode
  2047.      *
  2048.      * @return ComplaintX
  2049.      */
  2050.     public function setFactsAddressZipCode($factsAddressZipCode null)
  2051.     {
  2052.         $this->factsAddressZipCode $factsAddressZipCode;
  2053.         return $this;
  2054.     }
  2055.     /**
  2056.      * Get factsAddressZipCode.
  2057.      *
  2058.      * @return string|null
  2059.      */
  2060.     public function getFactsAddressZipCode()
  2061.     {
  2062.         return $this->factsAddressZipCode;
  2063.     }
  2064.     /**
  2065.      * Set factsAddressStreetNumber.
  2066.      *
  2067.      * @param string|null $factsAddressStreetNumber
  2068.      *
  2069.      * @return ComplaintX
  2070.      */
  2071.     public function setFactsAddressStreetNumber($factsAddressStreetNumber null)
  2072.     {
  2073.         $this->factsAddressStreetNumber $factsAddressStreetNumber;
  2074.         return $this;
  2075.     }
  2076.     /**
  2077.      * Get factsAddressStreetNumber.
  2078.      *
  2079.      * @return string|null
  2080.      */
  2081.     public function getFactsAddressStreetNumber()
  2082.     {
  2083.         return $this->factsAddressStreetNumber;
  2084.     }
  2085.     /**
  2086.      * Set factsAddressRoadName.
  2087.      *
  2088.      * @param string|null $factsAddressRoadName
  2089.      *
  2090.      * @return ComplaintX
  2091.      */
  2092.     public function setFactsAddressRoadName($factsAddressRoadName null)
  2093.     {
  2094.         $this->factsAddressRoadName $factsAddressRoadName;
  2095.         return $this;
  2096.     }
  2097.     /**
  2098.      * Get factsAddressRoadName.
  2099.      *
  2100.      * @return string|null
  2101.      */
  2102.     public function getFactsAddressRoadName()
  2103.     {
  2104.         return $this->factsAddressRoadName;
  2105.     }
  2106.     /**
  2107.      *
  2108.      */
  2109.     public static function getDiscoverCircumstances($category)
  2110.     {
  2111.         if ($category == "itemDegradation") {
  2112.             $arr = [
  2113.                 'Alors que je me trouvais dans mon jardin',
  2114.                 'Après avoir été prévenu téléphoniquement',
  2115.                 'En arrivant à mon domicile',
  2116.                 'En rentrant chez moi',
  2117.                 'En rentrant d’un rendez-vous de travail',
  2118.                 'En rentrant de vacances ',
  2119.                 'En rentrant de voyage',
  2120.                 'En rentrant de week-end',
  2121.                 'En rentrant du travail',
  2122.                 'En revenant d’une activité sportive ',
  2123.                 'En revenant d’une promenade ',
  2124.                 'En revenant de faire des courses ',
  2125.                 'En revenant de l’école avec mes enfants',
  2126.                 'En sortant de chez des amis',
  2127.                 'En sortant de chez moi',
  2128.             ];
  2129.         } elseif ($category == "principalResidenceBurglary") {
  2130.             $arr = [
  2131.                 'En rentrant chez moi',
  2132.                 'En arrivant à mon domicile',
  2133.                 'En sortant de chez moi',
  2134.                 'En rentrant du travail',
  2135.                 'En rentrant de week-end',
  2136.                 'En rentrant de vacances ',
  2137.                 'En rentrant de faire des courses ',
  2138.                 'En revenant de l’école avec mes enfants',
  2139.                 'En revenant d’une promenade ',
  2140.                 'En rentrant d’une activité sportive ',
  2141.                 'Alors que je me trouvais à l’intérieur de mon domicile',
  2142.                 'Alors que je me trouvais dans mon jardin',
  2143.                 'Après avoir été prévenu téléphoniquement',
  2144.             ];
  2145.         } elseif ($category == "secondResidenceBurglary") {
  2146.             $arr = [
  2147.                 'En rentrant chez moi',
  2148.                 'En arrivant à mon domicile',
  2149.                 'En sortant de chez moi',
  2150.                 'En arrivant chez moi pour le week-end',
  2151.                 'En arrivant chez moi pour des vacances ',
  2152.                 'En rentrant de faire des courses ',
  2153.                 'En revenant d’une promenade ',
  2154.                 'En rentrant d’une activité sportive ',
  2155.                 'Alors que je me trouvais à l’intérieur de mon domicile',
  2156.                 'Alors que je me trouvais dans mon jardin',
  2157.                 'Après avoir été prévenu téléphoniquement',
  2158.             ];
  2159.         } elseif ($category == "otherPlaceBurglary") {
  2160.             $arr = [
  2161.                 'En arrivant à mon local',
  2162.                 'En arrivant à mon atelier',
  2163.                 'En arrivant à mon box',
  2164.                 'En arrivant à mon cabanon',
  2165.                 'En arrivant à ma dépendance',
  2166.                 'En arrivant à mon garage',
  2167.                 'En arrivant à ma grange',
  2168.                 'En arrivant à mon hangar',
  2169.                 'En arrivant à mon local de stockage',
  2170.                 'En arrivant à ma remise',
  2171.                 'En arrivant à mon appartement',
  2172.                 'En arrivant à ma maison',
  2173.                 'En arrivant chez moi',
  2174.                 'Après avoir été prévenu téléphoniquement',
  2175.                 'Alors que je me trouvais dans mon local',
  2176.             ];
  2177.         } else {
  2178.             $arr = [
  2179.                 "Après avoir été prévenu téléphoniquement",
  2180.                 "En rentrant chez moi",
  2181.                 "En rentrant du travail",
  2182.                 "En rentrant de week-end",
  2183.                 "En rentrant de vacances",
  2184.                 "En rentrant de faire des courses",
  2185.                 "En revenant de l’école avec mes enfants",
  2186.                 "En revenant d’une promenade",
  2187.                 "En rentrant d’une activité sportive",
  2188.                 "Alors que je me trouvais chez moi",
  2189.             ];
  2190.         }
  2191.         return array_combine($arr$arr);
  2192.     }
  2193.     /**
  2194.      *
  2195.      */
  2196.     public static function getDiscoverCircumstancesVehicle($category)
  2197.     {
  2198.         if ($category == "accessoryVehicleTheft") {
  2199.             $arr = [
  2200.                 'En sortant d\'un rendez-vous',
  2201.                 'En rentrant chez moi',
  2202.                 'En partant au travail',
  2203.                 'En sortant de mon travail',
  2204.                 'En partant pour un rendez-vous de travail',
  2205.                 'En sortant d’un rendez-vous de travail',
  2206.                 'En sortant de chez des amis',
  2207.                 'En rentrant de soirée',
  2208.                 'En rentrant de week-end',
  2209.                 'En rentrant de vacances ',
  2210.                 'En rentrant de voyage',
  2211.                 'En sortant d’un commerce',
  2212.                 'En revenant de faire des courses ',
  2213.                 'En revenant de l’école avec mon/mes enfant(s)',
  2214.                 'En revenant d’une promenade ',
  2215.                 'En sortant d’une activité sportive ',
  2216.             ];
  2217.         } else {
  2218.             $arr = [
  2219.                 'En voulant récupérer mon véhicule',
  2220.                 'En sortant de chez moi',
  2221.                 'En sortant d\'un rendez-vous',
  2222.                 'En rentrant chez moi',
  2223.                 'En partant au travail',
  2224.                 'En sortant de mon travail',
  2225.                 'En partant pour un rendez-vous de travail',
  2226.                 'En sortant d’un rendez-vous de travail',
  2227.                 'En sortant de chez des amis',
  2228.                 'En rentrant de soirée',
  2229.                 'En rentrant de week-end',
  2230.                 'En rentrant de vacances ',
  2231.                 'En rentrant de voyage',
  2232.                 'En sortant d’un commerce',
  2233.                 'En revenant de faire des courses ',
  2234.                 'En revenant de l’école avec mon/mes enfant(s)',
  2235.                 'En revenant d’une promenade ',
  2236.                 'En sortant d’une activité sportive ',
  2237.             ];
  2238.         }
  2239.         return array_combine($arr$arr);
  2240.     }
  2241.     /**
  2242.      *
  2243.      */
  2244.     public static function getDiscoverCircumstancesTheft()
  2245.     {
  2246.         $arr = [
  2247.             'sur le marché',
  2248.             'sur mon lieu de travail ',
  2249.             'à l’accueil de mon lieu de travail',
  2250.             'dans la rue',
  2251.             'dans un espace public',
  2252.             'dans un espace privé',
  2253.             'dans un magasin',
  2254.             'dans une boutique',
  2255.             'dans une grande surface',
  2256.             'dans un cinéma',
  2257.             'dans un musée',
  2258.             'lors de la visite d’une exposition',
  2259.             'dans un salon professionnel ',
  2260.             'dans un salon grand public',
  2261.             'lors d’un spectacle',
  2262.             'lors d’un concert',
  2263.             'lors d’un match',
  2264.             'dans un stade ',
  2265.             'dans un restaurant',
  2266.             'sur la terrasse d’un commerce',
  2267.             'sur la terrasse d’un restaurant',
  2268.             'sur la terrasse d’un bar',
  2269.             'sur le comptoir d’un bar',
  2270.             'dans une enceinte sportive',
  2271.             'dans mon commerce',
  2272.             'dans l’entreprise où je travaille',
  2273.             'dans les transports en commun',
  2274.             'dans un RER',
  2275.             'dans un TER',
  2276.             'dans le métro',
  2277.             'dans une rame de métro',
  2278.             'dans un bus urbain',
  2279.             'dans un bus grande ligne',
  2280.             'dans un tramway',
  2281.             'dans une gare',
  2282.             'dans un aéroport',
  2283.             'dans un train de banlieue',
  2284.             'dans un train grande ligne',
  2285.             'dans le TGV',
  2286.             'dans un vestiaire sportif',
  2287.             'dans un vestiaire de l’entreprise où je travaille',
  2288.             'devant l’école',
  2289.             'devant le collège',
  2290.             'devant le lycée ',
  2291.         ];
  2292.         return array_combine($arr$arr);
  2293.     }
  2294.     public static function getBreakingDegradationsFounds($category null)
  2295.     {
  2296.         if ($category == 'vehicleDegradation') {
  2297.             $arr = [
  2298.                 'Antenne de toit arrachée',
  2299.                 'Coté droit de la carrosserie rayé sur toute la longueur',
  2300.                 'Coté gauche de la carrosserie rayé sur toute la longueur',
  2301.                 'Eléments de carénage cassés',
  2302.                 'Eléments de carénage rayés',
  2303.                 'Eléments de carrosserie dégradés',
  2304.                 'Eléments de carrosserie rayés ',
  2305.                 'Feu arrière droit cassé',
  2306.                 'Feu arrière gauche cassé',
  2307.                 'Parebrise cassé',
  2308.                 'Parechoc arrière cassé',
  2309.                 'Parechoc arrière enfoncé',
  2310.                 'Parechoc arrière rayé',
  2311.                 'Parechoc avant cassé',
  2312.                 'Parechoc avant enfoncé',
  2313.                 'Parechoc avant rayé',
  2314.                 'Phare avant droit cassé',
  2315.                 'Phare avant gauche cassé',
  2316.                 'Pneu(s) crevé(s)',
  2317.                 'Rétro viseur droit cassé',
  2318.                 'Rétro viseur gauche cassé',
  2319.                 'Selle dégradée',
  2320.                 'Serrure avant droite forcée',
  2321.                 'Serrure avant gauche forcée',
  2322.                 'Serrure de coffre forcée',
  2323.                 'Sièges dégradés',
  2324.                 'Système d’alarme détruit ',
  2325.                 'Véhicule entièrement rayé',
  2326.                 'Vitre de custode arrière droite brisée',
  2327.                 'Vitre de custode arrière gauche brisée',
  2328.                 'Vitre de custode avant droite brisée',
  2329.                 'Vitre de custode avant gauche brisée',
  2330.                 'Vitre de portière arrière droite brisée',
  2331.                 'Vitre de portière arrière gauche brisée',
  2332.                 'Vitre de portière avant droite brisée',
  2333.                 'Vitre de portière avant gauche brisée',
  2334.                 'Vitre du hayon arrière brisée',
  2335.             ];
  2336.         } elseif ($category == 'accessoryVehicleTheft') {
  2337.             $arr = [
  2338.                 'Serrure avant gauche forcée',
  2339.                 'Serrure avant droite forcée',
  2340.                 'Serrure de coffre forcée',
  2341.                 'Vitre de portière avant gauche brisée',
  2342.                 'Vitre de portière avant droite brisée',
  2343.                 'Vitre de portière arrière gauche brisée',
  2344.                 'Vitre de portière arrière droite brisée',
  2345.                 'Vitre de custode avant gauche brisée',
  2346.                 'Vitre de custode avant droite brisée',
  2347.                 'Vitre de custode arrière gauche brisée',
  2348.                 'Vitre de custode arrière droite brisée',
  2349.                 'Utilisation d’un dispositif de crochetage des portes',
  2350.                 'Parebrise cassé',
  2351.                 'Vitre du hayon arrière brisée',
  2352.                 'Véhicule entièrement rayé',
  2353.                 'Eléments de carrosserie rayés ',
  2354.                 'Eléments de carrosserie dégradés',
  2355.                 'Eléments de carénage rayés',
  2356.                 'Eléments de carénage cassés',
  2357.                 'Rétro viseur gauche cassé',
  2358.                 'Rétro viseur droit cassé',
  2359.                 'Système d’alarme détruit ',
  2360.                 'Sièges dégradés',
  2361.                 'Selle dégradée',
  2362.             ];
  2363.         } elseif ($category == 'vehicleTheft' || $category == 'insideVehicleTheft') {
  2364.             $arr = [
  2365.                 'Eléments de carénage cassés',
  2366.                 'Eléments de carénage rayés',
  2367.                 'Eléments de carrosserie dégradés',
  2368.                 'Eléments de carrosserie rayés ',
  2369.                 'Sacoches forcées',
  2370.                 'Serrure avant droite forcée',
  2371.                 'Serrure avant gauche forcée',
  2372.                 'Serrure de coffre forcée',
  2373.                 'Serrure de selle forcée',
  2374.                 'Serrure de top case forcée',
  2375.                 'Système d’alarme détruit ',
  2376.                 'Top case forcé',
  2377.                 'Utilisation d’un dispositif de crochetage des portes',
  2378.                 'Vitre de custode arrière droite brisée',
  2379.                 'Vitre de custode arrière gauche brisée',
  2380.                 'Vitre de custode avant droite brisée',
  2381.                 'Vitre de custode avant gauche brisée',
  2382.                 'Vitre de portière arrière droite brisée',
  2383.                 'Vitre de portière arrière gauche brisée',
  2384.                 'Vitre de portière avant droite brisée',
  2385.                 'Vitre de portière avant gauche brisée',
  2386.             ];
  2387.         } elseif ($category == 'principalResidenceBurglary') {
  2388.             $arr = [
  2389.                 'Barreaux sciés ',
  2390.                 'Cadenas détruit',
  2391.                 'Clôture abimée portant des traces d’escalade',
  2392.                 'Clôture pariellement détruite',
  2393.                 'Escalade de la clôture ',
  2394.                 'Escalade de la façade ',
  2395.                 'Escalade du balcon',
  2396.                 'Fenêtre forcée',
  2397.                 'Grillage de clôture découpé',
  2398.                 'Portail forcé',
  2399.                 'Porte d’entrée principale forcée',
  2400.                 'Porte d’entrée secondaire forcée',
  2401.                 'Porte de box forcée',
  2402.                 'Porte de garage forcée',
  2403.                 'Porte fenêtre forcée ',
  2404.                 'Portillon forcé',
  2405.                 'Serrure de porte d’entrée principale forcée ou crochetée',
  2406.                 'Serrure de porte d’entrée secondaire forcée ou crochetée',
  2407.                 'Serrure de porte de box forcée ou crochetée',
  2408.                 'Serrure de porte de garage forcée ou crochetée',
  2409.                 'Serrure de porte fenêtre forcée ou crochetée',
  2410.                 'Serrure du portail forcée ou crochetée',
  2411.                 'Serrure du portillon forcée ou crochetée',
  2412.                 'Vitre de fenêtre brisée',
  2413.                 'Vitre de porte brisée',
  2414.                 'Vitre de porte fenêtre brisée',
  2415.                 'Volets forcés',
  2416.                 'Volets roulants forcés ',
  2417.             ];
  2418.         } elseif ($category == 'secondResidenceBurglary') {
  2419.             $arr = [
  2420.                 'Barreaux sciés ',
  2421.                 'Cadenas détruit',
  2422.                 'Clôture abimée portant des traces d’escalade',
  2423.                 'Clôture pariellement détruite',
  2424.                 'Escalade de la clôture ',
  2425.                 'Escalade de la façade ',
  2426.                 'Escalade du balcon',
  2427.                 'Fenêtre forcée',
  2428.                 'Grillage de clôture découpé',
  2429.                 'Portail forcé',
  2430.                 'Porte d’entrée principale forcée',
  2431.                 'Porte d’entrée secondaire forcée',
  2432.                 'Porte de box forcée',
  2433.                 'Porte de garage forcée',
  2434.                 'Porte fenêtre forcée ',
  2435.                 'Portillon forcé',
  2436.                 'Serrure de porte d’entrée principale forcée ou crochetée',
  2437.                 'Serrure de porte d’entrée secondaire forcée ou crochetée',
  2438.                 'Serrure de porte de box forcée ou crochetée',
  2439.                 'Serrure de porte de garage forcée ou crochetée',
  2440.                 'Serrure de porte fenêtre forcée ou crochetée',
  2441.                 'Serrure du portail forcée ou crochetée',
  2442.                 'Serrure du portillon forcée ou crochetée',
  2443.                 'Vitre de fenêtre brisée',
  2444.                 'Vitre de porte brisée',
  2445.                 'Vitre de porte fenêtre brisée',
  2446.                 'Volets forcés',
  2447.                 'Volets roulants forcés',
  2448.             ];
  2449.         } elseif ($category == 'otherPlaceBurglary') {
  2450.             $arr = [
  2451.                 'Barreaux sciés ',
  2452.                 'Cadenas détruit',
  2453.                 'Clôture abimée portant des traces d’escalade',
  2454.                 'Clôture pariellement détruite',
  2455.                 'Escalade de la clôture ',
  2456.                 'Escalade de la façade ',
  2457.                 'Escalade du balcon',
  2458.                 'Fenêtre forcée',
  2459.                 'Grillage de clôture découpé',
  2460.                 'Portail forcé',
  2461.                 'Porte d’entrée principale forcée',
  2462.                 'Porte d’entrée secondaire forcée',
  2463.                 'Porte de box forcée',
  2464.                 'Porte de garage forcée',
  2465.                 'Porte fenêtre forcée ',
  2466.                 'Portillon forcé',
  2467.                 'Serrure de porte d’entrée principale forcée ou crochetée',
  2468.                 'Serrure de porte d’entrée secondaire forcée ou crochetée',
  2469.                 'Serrure de porte de box forcée ou crochetée',
  2470.                 'Serrure de porte de garage forcée ou crochetée',
  2471.                 'Serrure de porte fenêtre forcée ou crochetée',
  2472.                 'Serrure du portail forcée ou crochetée',
  2473.                 'Serrure du portillon forcée ou crochetée',
  2474.                 'Vitre de fenêtre brisée',
  2475.                 'Vitre de porte fenêtre brisée',
  2476.                 'Volets forcés',
  2477.                 'Volets roulants forcés',
  2478.             ];
  2479.         } else {
  2480.             $arr = [
  2481.                 "Portail forcé",
  2482.                 "Portillon forcé",
  2483.                 "Cadenas détruit",
  2484.                 "Serrure du portail forcée ou crochetée",
  2485.                 "Serrure du portillon forcée ou crochetée",
  2486.                 "Clôture abimée ou portant des traces d’escalade",
  2487.                 "Grillage de clôture découpé",
  2488.                 "Volets forcés",
  2489.                 "Fenêtre forcée",
  2490.                 "Vitre de fenêtre brisée",
  2491.                 "Porte de garage forcée",
  2492.                 "Porte de box forcée",
  2493.                 "Serrure de porte de garage forcée ou crochetée",
  2494.                 "Serrure de porte de box forcée ou crochetée",
  2495.                 "Porte d’entrée principale forcée",
  2496.                 "Serrure de porte d’entrée principale forcée ou crochetée",
  2497.                 "Porte d’entrée secondaire forcée",
  2498.                 "Serrure de porte d’entrée secondaire forcée ou crochetée",
  2499.                 "Porte fenêtre forcée",
  2500.                 "Serrure de porte fenêtre forcée ou crochetée",
  2501.                 "Vitre de porte fenêtre brisée",
  2502.                 "Escalade de la clôture",
  2503.                 "Escalade de la façade",
  2504.                 "Escalade du balcon",
  2505.             ];
  2506.         }
  2507.         return array_combine($arr$arr);
  2508.     }
  2509.     public function getFactsAttachmentMode(): ?SelectValues
  2510.     {
  2511.         return $this->factsAttachmentMode;
  2512.     }
  2513.     public function setFactsAttachmentMode(?SelectValues $factsAttachmentMode): static
  2514.     {
  2515.         $this->factsAttachmentMode $factsAttachmentMode;
  2516.         return $this;
  2517.     }
  2518.     public function getOtherStolenItems(): ?string
  2519.     {
  2520.         return $this->otherStolenItems;
  2521.     }
  2522.     public function setOtherStolenItems(?string $otherStolenItems): static
  2523.     {
  2524.         $this->otherStolenItems $otherStolenItems;
  2525.         return $this;
  2526.     }
  2527.     public function isAuthorManageToEnter(): ?bool
  2528.     {
  2529.         return $this->authorManageToEnter;
  2530.     }
  2531.     public function setAuthorManageToEnter(?bool $authorManageToEnter): static
  2532.     {
  2533.         $this->authorManageToEnter $authorManageToEnter;
  2534.         return $this;
  2535.     }
  2536.     public function isIsStolenFound(): ?bool
  2537.     {
  2538.         return $this->isStolenFound;
  2539.     }
  2540.     public function setIsStolenFound(?bool $isStolenFound): static
  2541.     {
  2542.         $this->isStolenFound $isStolenFound;
  2543.         return $this;
  2544.     }
  2545.     public function getStolenPhone(): ?Item
  2546.     {
  2547.         return $this->stolenPhone;
  2548.     }
  2549.     public function setStolenPhone(?Item $stolenPhone): static
  2550.     {
  2551.         $this->stolenPhone $stolenPhone;
  2552.         return $this;
  2553.     }
  2554.     public function getPaymentIntentId(): ?string
  2555.     {
  2556.         return $this->paymentIntentId;
  2557.     }
  2558.     public function setPaymentIntentId(?string $paymentIntentId): static
  2559.     {
  2560.         $this->paymentIntentId $paymentIntentId;
  2561.         return $this;
  2562.     }
  2563.     public function hasStatus(int $status): bool
  2564.     {
  2565.         if (!self::_isAcceptedStatus($status)) {
  2566.             throw new \RuntimeException("Unknown status: " $status);
  2567.         }
  2568.         return $this->status $status;
  2569.     }
  2570.     public function addStatus(int $status): static
  2571.     {
  2572.         if (!self::_isAcceptedStatus($status)) {
  2573.             throw new \RuntimeException("Unknown status: " $status);
  2574.         }
  2575.         $this->status |= $status;
  2576.         return $this;
  2577.     }
  2578.     public function removeStatus(int $status): static
  2579.     {
  2580.         if (!self::_isAcceptedStatus($status)) {
  2581.             throw new \RuntimeException("Unknown status: " $status);
  2582.         }
  2583.         $this->status &= ~$status;
  2584.         return $this;
  2585.     }
  2586.     protected static function _isAcceptedStatus(int $status): bool
  2587.     {
  2588.         $acceptedValues = [
  2589.             self::STATUS_PAYMENT_PROCESSING,
  2590.             self::STATUS_PAYMENT_ACCEPTED,
  2591.             self::STATUS_DOCUMENT_CHECKED,
  2592.             self::STATUS_PAID,
  2593.             self::STATUS_SIGN_PENDING,
  2594.             self::STATUS_SIGNED,
  2595.             self::STATUS_CLOSED
  2596.         ];
  2597.         return in_array($status$acceptedValues);
  2598.     }
  2599.     public function getPaymentIntentStatus(): ?string
  2600.     {
  2601.         return $this->paymentIntentStatus;
  2602.     }
  2603.     public function setPaymentIntentStatus(?string $paymentIntentStatus): self
  2604.     {
  2605.         $this->paymentIntentStatus $paymentIntentStatus;
  2606.         return $this;
  2607.     }
  2608.     public function isHasDigitalSignature(): ?bool
  2609.     {
  2610.         return $this->hasDigitalSignature;
  2611.     }
  2612.     public function setHasDigitalSignature(?bool $hasDigitalSignature): static
  2613.     {
  2614.         $this->hasDigitalSignature $hasDigitalSignature;
  2615.         return $this;
  2616.     }
  2617.     public function hasNonSavedItem(Item $item)
  2618.     {
  2619.         return str_contains(html_entity_decode($this->getNonSavedItem()), trim($item->getName() . ' ' $item->getBrand() . ' ' $item->getSerialNumber()));
  2620.     }
  2621.     public function getSignatureRequestId(): ?string
  2622.     {
  2623.         return $this->signatureRequestId;
  2624.     }
  2625.     public function setSignatureRequestId(?string $signatureRequestId): static
  2626.     {
  2627.         $this->signatureRequestId $signatureRequestId;
  2628.         return $this;
  2629.     }
  2630.     public function getStep(): ?int
  2631.     {
  2632.         return $this->step;
  2633.     }
  2634.     public function setStep(?int $stepbool $force false): static
  2635.     {
  2636.         if ($step $this->step || $force) {
  2637.             $this->step $step;
  2638.         }
  2639.         return $this;
  2640.     }
  2641.     public function getOfferName(): ?string
  2642.     {
  2643.         return $this->offerName;
  2644.     }
  2645.     public function setOfferName(?string $offerName): static
  2646.     {
  2647.         $this->offerName $offerName;
  2648.         return $this;
  2649.     }
  2650.     public function isClosed(): bool
  2651.     {
  2652.         return $this->hasStatus(self::STATUS_CLOSED);
  2653.     }
  2654. }