src/Model/User/User.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Model\User;
  3. use App\Model\Strate;
  4. use App\Model\User\Address\Delivery;
  5. use App\Model\User\Address\Home;
  6. use JMS\Serializer\Annotation as Serializer;
  7. use JMS\Serializer\Annotation\SerializedName;
  8. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  9. use Symfony\Component\Security\Core\User\UserInterface;
  10. use Symfony\Component\Validator\Constraints as Assert;
  11. class User implements UserInterfacePasswordAuthenticatedUserInterface
  12. {
  13.     /**
  14.      * @var string
  15.      * @Serializer\Type("string")
  16.      * @Serializer\Groups({
  17.      *     "get_token",
  18.      *     "get_user",
  19.      *     "get_user_operation_carts",
  20.      *     "get_user_gift_carts",
  21.      * })
  22.      */
  23.     protected $id;
  24.     /**
  25.      * @var string
  26.      * @Serializer\Type("string")
  27.      * @Serializer\Groups({
  28.      *     "get_user",
  29.      *     "post_email",
  30.      *     "put_user_general",
  31.      * })
  32.      * @Assert\NotBlank(groups={"post_user_register"})
  33.      * @Assert\Email(groups={"post_user_register"})
  34.      */
  35.     private $email;
  36.     /**
  37.      * @var Identity
  38.      * @Serializer\Type(Identity::class)
  39.      * @Serializer\Groups({
  40.      *     "get_user",
  41.      *     "put_user_general",
  42.      *     "get_godfather_by_godchild_email",
  43.      * })
  44.      * @Assert\NotBlank(groups={"post_user_register"})
  45.      * @Assert\Valid(groups={"post_user_register"})
  46.      */
  47.     private Identity $identity;
  48.     /**
  49.      * @var array
  50.      * @Serializer\Type("array")
  51.      * @Serializer\Groups({"get_user"})
  52.      */
  53.     private $roles = [];
  54.     /**
  55.      * @var string The hashed password
  56.      * @Serializer\Groups({
  57.      *     "post_email",
  58.      *     "put_user_password",
  59.      *     "get_user"
  60.      * })
  61.      * @Assert\NotBlank(groups={
  62.      *     "put_user_password",
  63.      * })
  64.      * @Serializer\Type("string")
  65.      */
  66.     private $password;
  67.     /**
  68.      * @SerializedName("plainPassword")
  69.      * @Assert\NotBlank(groups={
  70.      *     "post_user_register",
  71.      *     "put_user_password",
  72.      * })
  73.      * @Serializer\Groups({
  74.      *     "put_user_password",
  75.      * })
  76.      */
  77.     private $plainPassword;
  78.     /**
  79.      * @var array
  80.      * @Serializer\Type("array<App\Model\User\Address\Home>")
  81.      * @Serializer\Groups({
  82.      *     "get_user",
  83.      *     "post_user_general",
  84.      *     "put_user_general",
  85.      * })
  86.      */
  87.     private array $addressesHome = [];
  88. //    /**
  89. //     * @var array
  90. //     * @Serializer\Type("array<App\Model\User\Address\Delivery>")
  91. //     * @Serializer\Groups({
  92. //     *     "get_user",
  93. //     *     "post_user_delivery",
  94. //     *     "put_user_delivery",
  95. //     * })
  96. //     */
  97. //    private array $addressesDelivery = [];
  98.     /**
  99.      * @Serializer\Type("array<App\Model\User\Address\Delivery>")
  100.      * @Serializer\Groups({
  101.      *     "get_user",
  102.      *     "post_user_register_delivery",
  103.      * })
  104.      * @Assert\Valid(groups={
  105.      *     "post_user_register_delivery",
  106.      * })
  107.      */
  108.     private array $addressesDelivery = [];
  109.     /**
  110.      * @var bool|null
  111.      * @Serializer\Type("boolean")
  112.      * @Serializer\Groups({
  113.      *     "get_user",
  114.      *     "put_optin_brand",
  115.      * })
  116.      */
  117.     private $optinBrand;
  118.     /**
  119.      * @var bool|null
  120.      * @Serializer\Type("boolean")
  121.      */
  122.     private $optinProcess;
  123.     /**
  124.      * @var bool|null
  125.      * @Serializer\Type("boolean")
  126.      * @Serializer\Groups({
  127.      *     "get_user",
  128.      *     "put_optin_phone",
  129.      * })
  130.      */
  131.     private $optinPhone;
  132.     /**
  133.      * @var bool|null
  134.      * @Serializer\Type("boolean")
  135.      * @Serializer\Groups({
  136.      *     "get_user",
  137.      * })
  138.      */
  139.     private $optinSales;
  140.     /**
  141.      * @var bool|null
  142.      * @Serializer\Type("boolean")
  143.      */
  144.     private ?bool $hasAdditionalInformation;
  145.     /**
  146.      * @var string|null
  147.      * @Serializer\Type("string")
  148.      * @Serializer\Groups({
  149.      *     "get_user",
  150.      *     "post_user_register",
  151.      *     "put_user_general",
  152.      * })
  153.      * @Assert\NotBlank(groups={"post_user_register"})
  154.      */
  155.     private $companyName;
  156.     /**
  157.      * @var string|null
  158.      * @Serializer\Type("string")
  159.      * @Serializer\Groups({
  160.      *     "get_user",
  161.      *     "post_user_register",
  162.      *     "put_user_general",
  163.      * })
  164.      * @Assert\NotBlank(groups={"post_user_register"})
  165.      */
  166.     private $siret;
  167.     /**
  168.      * @var string|null
  169.      * @Serializer\Type("string")
  170.      * @Serializer\Groups({
  171.      *     "get_user",
  172.      *     "post_user_register",
  173.      * })
  174.      */
  175.     private $referralCode;
  176.     /**
  177.      * @var string|null
  178.      * @Serializer\Type("string")
  179.      */
  180.     private $token;
  181.     /**
  182.      * @var array
  183.      * @Serializer\Type("array<App\Model\User\Iban>")
  184.      * @Serializer\Groups({
  185.      *     "get_user",
  186.      * })
  187.      */
  188.     private array $ibans = [];
  189.     /**
  190.      * @var Referent|null
  191.      * @Serializer\Type(Referent::class)
  192.      * @Serializer\Groups({
  193.      *     "get_user",
  194.      *     "get_godfather_by_godchild_email",
  195.      *     "put_user_referent",
  196.      * })
  197.      */
  198.     private ?Referent $referent;
  199.     /**
  200.      * @var Strate|null
  201.      * @Serializer\Type(Strate::class)
  202.      * @Serializer\Groups({
  203.      *     "get_user",
  204.      * })
  205.      */
  206.     private ?Strate $strate;
  207.     /**
  208.      * @var array
  209.      * @Serializer\Type("array")
  210.      * @Serializer\Groups({
  211.      *     "get_user",
  212.      *     "put_user_wholesaler",
  213.      *     "post_user_register",
  214.      * })
  215.      */
  216.     private array $additionalInformation = [];
  217.     /**
  218.      * @var string|null
  219.      * @Serializer\Type("string")
  220.      * @Serializer\Groups({
  221.      *     "get_user",
  222.      *     "put_user_general",
  223.      * })
  224.      */
  225.     private $phoneNumber;
  226.     public function getId(): ?string
  227.     {
  228.         return $this->id;
  229.     }
  230.     /**
  231.      * @return array
  232.      */
  233.     public function getIbans(): array
  234.     {
  235.         return $this->ibans;
  236.     }
  237.     /**
  238.      * @param array $ibans
  239.      * @return User
  240.      */
  241.     public function setIbans(array $ibans): User
  242.     {
  243.         $this->ibans $ibans;
  244.         return $this;
  245.     }
  246.     /**
  247.      * @return string
  248.      */
  249.     public function getEmail(): ?string
  250.     {
  251.         return $this->email;
  252.     }
  253.     /**
  254.      * @param string $email
  255.      * @return User
  256.      */
  257.     public function setEmail(string $email): User
  258.     {
  259.         $this->email $email;
  260.         return $this;
  261.     }
  262.     /**
  263.      * @return Identity
  264.      */
  265.     public function getIdentity(): Identity
  266.     {
  267.         return $this->identity;
  268.     }
  269.     /**
  270.      * @param Identity $identity
  271.      * @return User
  272.      */
  273.     public function setIdentity(Identity $identity): User
  274.     {
  275.         $this->identity $identity;
  276.         return $this;
  277.     }
  278.     /**
  279.      * @param mixed $addressHome
  280.      */
  281.     public function addAddressHome($addressHome)
  282.     {
  283.         $this->addressesHome[] = $addressHome;
  284.     }
  285.     /**
  286.      * @param mixed $addressHome
  287.      */
  288.     public function removeAddressHome(Home $addressHome)
  289.     {
  290.         if (false !== $key array_search($addressHome$this->addressesHometrue)) {
  291.             array_splice($this->addressesHome$key1);
  292.         }
  293.     }
  294.     public function getFavAddressHome(): ?array
  295.     {
  296.         foreach( $this->addressesHome as $key => $addressHome) {
  297.             if($key === 'favorite'){
  298.                 if( $addressHome === true ) {
  299.                     return $this->addressesHome;
  300.                 }
  301.             }
  302.         }
  303.         return null;
  304.     }
  305.     public function setFavAddressHome(Home $addressHome)
  306.     {
  307.         $this->addAddressHome($addressHome);
  308.     }
  309.     /**
  310.      * @return array
  311.      */
  312.     public function getAddressesHome(): array
  313.     {
  314.         return $this->addressesHome;
  315.     }
  316.     /**
  317.      * @param array $addressesHome
  318.      * @return User
  319.      */
  320.     public function setAddressesHome(array $addressesHome): User
  321.     {
  322.         $this->addressesHome $addressesHome;
  323.         return $this;
  324.     }
  325.     /**
  326.      * @see UserInterface
  327.      */
  328.     public function getRoles(): ?array
  329.     {
  330.         $roles $this->roles;
  331.         $roles[] = 'ROLE_USER';
  332.         return array_unique($roles);
  333.     }
  334.     /**
  335.      * @param array $roles
  336.      *
  337.      * @return User
  338.      */
  339.     public function setRoles(array $roles): User
  340.     {
  341.         $this->roles $roles;
  342.         return $this;
  343.     }
  344.     /**
  345.      * @return string
  346.      */
  347.     public function getPassword(): ?string
  348.     {
  349.         return $this->password;
  350.     }
  351.     /**
  352.      * @param string $password
  353.      *
  354.      * @return User
  355.      */
  356.     public function setPassword(string $password): User
  357.     {
  358.         $this->password $password;
  359.         return $this;
  360.     }
  361.     /**
  362.      * @return string|null
  363.      */
  364.     public function getPlainPassword(): ?string
  365.     {
  366.         return $this->plainPassword;
  367.     }
  368.     /**
  369.      * @param string|null $plainPassword
  370.      * @return User
  371.      */
  372.     public function setPlainPassword(?string $plainPassword): User
  373.     {
  374.         $this->plainPassword $plainPassword;
  375.         return $this;
  376.     }
  377.     /**
  378.      * @return string
  379.      */
  380.     public function getToken(): ?string
  381.     {
  382.         return $this->token;
  383.     }
  384.     /**
  385.      * @param string|null $token
  386.      *
  387.      * @return User
  388.      */
  389.     public function setToken(?string $token): User
  390.     {
  391.         $this->token $token;
  392.         return $this;
  393.     }
  394.     public function getSalt(): ?string
  395.     {
  396.         return null;
  397.     }
  398.     public function getUsername(): string
  399.     {
  400.         return $this->email;
  401.     }
  402.     public function eraseCredentials()
  403.     {
  404.         return $this->password null;
  405.     }
  406.     /**
  407.      * @return bool
  408.      */
  409.     public function isOptinBrand() : ?bool
  410.     {
  411.         return $this->optinBrand;
  412.     }
  413.     /**
  414.      * @param bool $optinBrand
  415.      *
  416.      * @return User
  417.      */
  418.     public function setOptinBrand(bool $optinBrand) : User
  419.     {
  420.         $this->optinBrand $optinBrand;
  421.         return $this;
  422.     }
  423.     /**
  424.      * @return bool
  425.      */
  426.     public function isOptinProcess() : ?bool
  427.     {
  428.         return $this->optinProcess;
  429.     }
  430.     /**
  431.      * @param bool $optinProcess
  432.      *
  433.      * @return User
  434.      */
  435.     public function setOptinProcess(bool $optinProcess) : User
  436.     {
  437.         $this->optinProcess $optinProcess;
  438.         return $this;
  439.     }
  440.     /**
  441.      * @return bool
  442.      */
  443.     public function isOptinPhone() : ?bool
  444.     {
  445.         return $this->optinPhone;
  446.     }
  447.     /**
  448.      * @param bool $optinPhone
  449.      *
  450.      * @return User
  451.      */
  452.     public function setOptinPhone(bool $optinPhone) : User
  453.     {
  454.         $this->optinPhone $optinPhone;
  455.         return $this;
  456.     }
  457.     /**
  458.      * @return bool
  459.      */
  460.     public function isOptinSales() : ?bool
  461.     {
  462.         return $this->optinSales;
  463.     }
  464.     /**
  465.      * @param bool $optinSales
  466.      *
  467.      * @return User
  468.      */
  469.     public function setOptinSales(?bool $optinSales) : User
  470.     {
  471.         $this->optinSales $optinSales;
  472.         return $this;
  473.     }
  474.     /**
  475.      * @param mixed $addressDelivery
  476.      */
  477.     public function addAddressDelivery($addressDelivery)
  478.     {
  479.         $this->addressesDelivery[] = $addressDelivery;
  480.     }
  481.     /**
  482.      * @param mixed $addressDelivery
  483.      */
  484.     public function removeAddressDelivery(Delivery $addressDelivery)
  485.     {
  486.         if (false !== $key array_search($addressDelivery$this->addressesDeliverytrue)) {
  487.             array_splice($this->addressesDelivery$key1);
  488.         }
  489.     }
  490.     public function getFavAddressDelivery(): ?array
  491.     {
  492.         foreach( $this->addressesDelivery as $key => $addressDelivery) {
  493.             if($key === 'favorite'){
  494.                 if( $addressDelivery === true ) {
  495.                     return $this->addressesDelivery;
  496.                 }
  497.             }
  498.         }
  499.         return null;
  500.     }
  501.     public function setFavAddressDelivery(Delivery $addressDelivery)
  502.     {
  503.         $this->addAddressDelivery($addressDelivery);
  504.     }
  505.     public function getAddressesDelivery(): array
  506.     {
  507.         return $this->addressesDelivery;
  508.     }
  509.     /**
  510.      * @param array $addressesDelivery
  511.      * @return User
  512.      */
  513.     public function setAddressesDelivery(array $addressesDelivery): User
  514.     {
  515.         $this->addressesDelivery $addressesDelivery;
  516.         return $this;
  517.     }
  518.     /**
  519.      * @return string
  520.      */
  521.     public function getCompanyName(): ?string
  522.     {
  523.         return $this->companyName;
  524.     }
  525.     /**
  526.      * @param string $companyName
  527.      *
  528.      * @return User
  529.      */
  530.     public function setCompanyName(string $companyName): User
  531.     {
  532.         $this->companyName $companyName;
  533.         return $this;
  534.     }
  535.     /**
  536.      * @return string
  537.      */
  538.     public function getSiret(): ?string
  539.     {
  540.         return $this->siret;
  541.     }
  542.     /**
  543.      * @param string $siret
  544.      *
  545.      * @return User
  546.      */
  547.     public function setSiret(string $siret): User
  548.     {
  549.         $this->siret $siret;
  550.         return $this;
  551.     }
  552.     public function getReferralCode(): ?string
  553.     {
  554.         return $this->referralCode;
  555.     }
  556.     /**
  557.      * @param string $referralCode
  558.      *
  559.      * @return User
  560.      */
  561.     public function setReferralCode(string $referralCode): User
  562.     {
  563.         $this->referralCode $referralCode;
  564.         return $this;
  565.     }
  566.     /**
  567.      * @return Referent|null
  568.      */
  569.     public function getReferent(): ?Referent
  570.     {
  571.         return $this->referent;
  572.     }
  573.     /**
  574.      * @param Referent|null $referent
  575.      * @return User
  576.      */
  577.     public function setReferent(?Referent $referent): User
  578.     {
  579.         $this->referent $referent;
  580.         return $this;
  581.     }
  582.     /**
  583.      * @return Strate
  584.      */
  585.     public function getStrate(): ?Strate
  586.     {
  587.         return $this->strate;
  588.     }
  589.     /**
  590.      * @param Strate|null $strate
  591.      */
  592.     public function setStrate(?Strate $strate): void
  593.     {
  594.         $this->strate $strate;
  595.     }
  596.     public function getHasAdditionalInformation(): ?bool
  597.     {
  598.         return $this->hasAdditionalInformation;
  599.     }
  600.     public function setHasAdditionalInformation(?bool $hasAdditionalInformation): void
  601.     {
  602.         $this->hasAdditionalInformation $hasAdditionalInformation;
  603.     }
  604.     public function getAdditionalInformation(): ?array
  605.     {
  606.         return $this->additionalInformation;
  607.     }
  608.     public function setAdditionalInformation(?array $additionalInformation): void
  609.     {
  610.         $this->additionalInformation $additionalInformation;
  611.     }
  612.     /**
  613.      * The public representation of the user (e.g. a username, an email address, etc.)
  614.      *
  615.      * @see UserInterface
  616.      */
  617.     public function getUserIdentifier(): string
  618.     {
  619.         return $this->email;
  620.     }
  621.     /**
  622.      * @return string
  623.      */
  624.     public function getPhoneNumber(): ?string
  625.     {
  626.         return $this->phoneNumber;
  627.     }
  628.     /**
  629.      * @param string $phoneNumber
  630.      * @return User
  631.      */
  632.     public function setPhoneNumber(string $phoneNumber): User
  633.     {
  634.         $this->phoneNumber $phoneNumber;
  635.         return $this;
  636.     }
  637. }