src/Entity/User.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\UserRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  8. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  9. use Symfony\Component\Security\Core\User\UserInterface;
  10. /**
  11.  * @ORM\Entity(repositoryClass=UserRepository::class)
  12.  * @UniqueEntity(fields={"email"}, message="There is already an account with this email")
  13.  * @ORM\HasLifecycleCallbacks
  14.  */
  15. class User extends AbstractEntity implements UserInterfacePasswordAuthenticatedUserInterface
  16. {
  17.     /**
  18.      * Administrátor
  19.      */
  20.     const ROLE_ADMIN 'ROLE_ADMIN';
  21.     /**
  22.      * Role Obchodník
  23.      */
  24.     const ROLE_MERCHANT 'ROLE_MERCHANT';
  25.     /**
  26.      * Role Zákazník
  27.      */
  28.     const ROLE_CUSTOMER 'ROLE_CUSTOMER';
  29.     /**
  30.      * Správce firmy
  31.      */
  32.     const ROLE_COMPANY_ADMIN 'ROLE_COMPANY_ADMIN';
  33.     /**
  34.      * Pracovník firmy
  35.      */
  36.     const ROLE_COMPANY_USER 'ROLE_COMPANY_USER';
  37.     /**
  38.      * @ORM\Id
  39.      * @ORM\GeneratedValue
  40.      * @ORM\Column(type="integer")
  41.      */
  42.     private $id;
  43.     /**
  44.      * @ORM\Column(type="string", length=180, unique=true)
  45.      */
  46.     private $email;
  47.     /**
  48.      * @ORM\Column(type="json")
  49.      */
  50.     private $roles = [];
  51.     /**
  52.      * @var string The hashed password
  53.      * @ORM\Column(type="string")
  54.      */
  55.     private $password;
  56.     /**
  57.      * @ORM\Column(type="boolean")
  58.      */
  59.     private $isVerified false;
  60.     /**
  61.      * @ORM\Column(type="boolean", nullable=true)
  62.      */
  63.     private $active;
  64.     /**
  65.      * @ORM\Column(type="string", length=8, nullable=true)
  66.      */
  67.     private $code;
  68.     /**
  69.      * @ORM\Column(type="integer", nullable=true)
  70.      */
  71.     private $provision;
  72.     /**
  73.      * @ORM\Column(type="string", length=128, nullable=true)
  74.      */
  75.     private $name;
  76.     /**
  77.      * @ORM\Column(type="string", length=128, nullable=true)
  78.      */
  79.     private $surname;
  80.     /**
  81.      * @ORM\Column(type="string", length=3, nullable=true)
  82.      */
  83.     private $personType;
  84.     /**
  85.      * @ORM\Column(type="string", length=32, nullable=true)
  86.      */
  87.     private $nationality;
  88.     /**
  89.      * @ORM\Column(type="string", length=4, nullable=true)
  90.      */
  91.     private $taxResidency;
  92.     /**
  93.      * @ORM\Column(type="string", length=512, nullable=true)
  94.      */
  95.     private $address;
  96.     /**
  97.      * @ORM\Column(type="string", length=255, nullable=true)
  98.      */
  99.     private $street;
  100.     /**
  101.      * @ORM\Column(type="string", length=128, nullable=true)
  102.      */
  103.     private $town;
  104.     /**
  105.      * @ORM\Column(type="string", length=6, nullable=true)
  106.      */
  107.     private $postal;
  108.     /**
  109.      * @ORM\Column(type="string", length=512, nullable=true)
  110.      */
  111.     private $address2;
  112.     /**
  113.      * @ORM\Column(type="string", length=255, nullable=true)
  114.      */
  115.     private $street2;
  116.     /**
  117.      * @ORM\Column(type="string", length=128, nullable=true)
  118.      */
  119.     private $town2;
  120.     /**
  121.      * @ORM\Column(type="string", length=6, nullable=true)
  122.      */
  123.     private $postal2;
  124.     /**
  125.      * @ORM\Column(type="string", length=32, nullable=true)
  126.      */
  127.     private $ic;
  128.     /**
  129.      * @ORM\Column(type="string", length=36, nullable=true)
  130.      */
  131.     private $dic;
  132.     /**
  133.      * @ORM\Column(type="date", nullable=true)
  134.      */
  135.     private $birthdate;
  136.     /**
  137.      * @ORM\Column(type="string", length=128, nullable=true)
  138.      */
  139.     private $phone;
  140.     /**
  141.      * @ORM\Column(type="string", length=255, nullable=true)
  142.      */
  143.     private $bankName;
  144.     /**
  145.      * @ORM\Column(type="string", length=255, nullable=true)
  146.      */
  147.     private $bankAccount;
  148.     /**
  149.      * @ORM\Column(type="string", length=128, nullable=true)
  150.      */
  151.     private $swift;
  152.     /**
  153.      * @ORM\Column(type="string", length=128, nullable=true)
  154.      */
  155.     private $iban;
  156.     /**
  157.      * @ORM\Column(type="text", nullable=true)
  158.      */
  159.     private $notes;
  160.     /**
  161.      * @ORM\Column(type="string", length=255, nullable=true)
  162.      */
  163.     private $idType;
  164.     /**
  165.      * @ORM\Column(type="string", length=255, nullable=true)
  166.      */
  167.     private $idNumber;
  168.     /**
  169.      * @ORM\Column(type="string", length=255, nullable=true)
  170.      */
  171.     private $idAuthor;
  172.     /**
  173.      * @ORM\Column(type="date", nullable=true)
  174.      */
  175.     private $idValidity;
  176.     /**
  177.      * @ORM\Column(type="string", length=255, nullable=true)
  178.      */
  179.     private $businessmanRegistrationPlace;
  180.     /**
  181.      * @ORM\Column(type="string", length=255, nullable=true)
  182.      */
  183.     private $businessmanRegistrationNumber;
  184.     /**
  185.      * @ORM\Column(type="string", length=255, nullable=true)
  186.      */
  187.     private $companyRegistrationPlace;
  188.     /**
  189.      * @ORM\Column(type="string", length=255, nullable=true)
  190.      */
  191.     private $companyRegistrationNumber;
  192.     /**
  193.      * @ORM\Column(type="string", length=255, nullable=true)
  194.      */
  195.     private $companyRegistrationPartition;
  196.     /**
  197.      * @ORM\Column(type="string", length=255, nullable=true)
  198.      */
  199.     private $companyRegistrationInsertion;
  200.     /**
  201.      * @ORM\Column(type="string", length=255, nullable=true)
  202.      */
  203.     private $companyRepresentantive;
  204.     /**
  205.      * @ORM\OneToMany(targetEntity=Order::class, mappedBy="user")
  206.      */
  207.     private $orders;
  208.     /**
  209.      * @ORM\ManyToOne(targetEntity=Company::class, inversedBy="users")
  210.      */
  211.     private $company;
  212.     /**
  213.      * @ORM\Column(type="boolean")
  214.      */
  215.     private $deleted false;
  216.     /**
  217.      * @ORM\Column(type="string", length=6, nullable=true)
  218.      */
  219.     private $bankCode;
  220.     /**
  221.      * @ORM\OneToMany(targetEntity=UserRelation::class, mappedBy="junior", fetch="EXTRA_LAZY")
  222.      */
  223.     private $bosses;
  224.     /**
  225.      * @ORM\OneToMany(targetEntity=UserRelation::class, mappedBy="boss", fetch="EXTRA_LAZY")
  226.      */
  227.     private $juniors;
  228.     /**
  229.      * @ORM\OneToMany(targetEntity=InvoiceAutomation::class, mappedBy="merchant")
  230.      */
  231.     private $invoices;
  232.     /**
  233.      * @ORM\Column(type="boolean", nullable=true)
  234.      */
  235.     private $invoiceAutomation true;
  236.     /**
  237.      * @ORM\Column(type="string", length=255, nullable=true)
  238.      */
  239.     private $bankNameEur;
  240.     /**
  241.      * @ORM\Column(type="string", length=255, nullable=true)
  242.      */
  243.     private $bankAccountEur;
  244.     /**
  245.      * @ORM\Column(type="string", length=6, nullable=true)
  246.      */
  247.     private $bankCodeEur;
  248.     /**
  249.      * @ORM\Column(type="string", length=128, nullable=true)
  250.      */
  251.     private $ibanEur;
  252.     /**
  253.      * @ORM\Column(type="string", length=128, nullable=true)
  254.      */
  255.     private $swiftEur;
  256.     /**
  257.      * @ORM\OneToMany(targetEntity=InvoiceAutomationExpand::class, mappedBy="user")
  258.      */
  259.     private $invoiceAutomationExpands;
  260.     /**
  261.      * @ORM\OneToMany(targetEntity=InterestPaidoff::class, mappedBy="createdBy")
  262.      */
  263.     private $interestPaidoffs;
  264.     /**
  265.      * @ORM\OneToMany(targetEntity=InterestPaidoffReport::class, mappedBy="createdBy")
  266.      */
  267.     private $interestPaidoffReports;
  268.     /**
  269.      * @ORM\Column(type="boolean", nullable=true)
  270.      */
  271.     private $anonymize 0;
  272.     /**
  273.      * @ORM\Column(type="string", length=3, nullable=true)
  274.      */
  275.     private $tipster;
  276.     public function __construct()
  277.     {
  278.         $this->orders = new ArrayCollection();
  279.         $this->bosses = new ArrayCollection();
  280.         $this->juniors = new ArrayCollection();
  281.         $this->invoices = new ArrayCollection();
  282.         $this->invoiceAutomationExpands = new ArrayCollection();
  283.         $this->interestPaidoffs = new ArrayCollection();
  284.         $this->interestPaidoffReports = new ArrayCollection();
  285.     }
  286.     /**
  287.      * @return string (ID:{$this->getId()}) {$this->getUsername()}
  288.      */
  289.     public function __toString(): string
  290.     {
  291.         return "(ID:{$this->getId()}{$this->getUsername()}";
  292.     }
  293.     /**
  294.      * @return int|null
  295.      */
  296.     public function getId(): ?int
  297.     {
  298.         return $this->id;
  299.     }
  300.     /**
  301.      * @return string|null
  302.      */
  303.     public function getEmail(): ?string
  304.     {
  305.         return $this->email;
  306.     }
  307.     /**
  308.      * @param string $email
  309.      * @return $this
  310.      */
  311.     public function setEmail(string $email): self
  312.     {
  313.         $this->email $email;
  314.         return $this;
  315.     }
  316.     /**
  317.      * A visual identifier that represents this user.
  318.      *
  319.      * @see UserInterface
  320.      */
  321.     public function getUserIdentifier(): string
  322.     {
  323.         return (string)$this->email;
  324.     }
  325.     /**
  326.      * @deprecated since Symfony 5.3, use getUserIdentifier instead
  327.      */
  328.     public function getUsername(): string
  329.     {
  330.         return (string)$this->email;
  331.     }
  332.     /**
  333.      * @see UserInterface
  334.      */
  335.     public function getRoles(): array
  336.     {
  337.         $roles $this->roles;
  338.         // guarantee every user at least has ROLE_USER
  339.         //$roles[] = 'ROLE_CUSTOMER';
  340.         return array_unique($roles);
  341.     }
  342.     /**
  343.      * @param $role
  344.      * @return bool
  345.      */
  346.     public function hasRole($role){
  347.         return in_array($role$this->roles);
  348.     }
  349.     /**
  350.      * @param $role
  351.      * @return bool
  352.      */
  353.     public function revokeRole($role){
  354.         unset($this->roles[$role]);
  355.         return true;
  356.     }
  357.     /**
  358.      * @param array $roles
  359.      * @return $this
  360.      */
  361.     public function setRoles(array $roles): self
  362.     {
  363.         $this->roles $roles;
  364.         return $this;
  365.     }
  366.     /**
  367.      * @see PasswordAuthenticatedUserInterface
  368.      */
  369.     public function getPassword(): string
  370.     {
  371.         return $this->password;
  372.     }
  373.     /**
  374.      * @param string $password
  375.      * @return $this
  376.      */
  377.     public function setPassword(string $password): self
  378.     {
  379.         $this->password $password;
  380.         return $this;
  381.     }
  382.     /**
  383.      * Returning a salt is only needed, if you are not using a modern
  384.      * hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.
  385.      *
  386.      * @see UserInterface
  387.      */
  388.     public function getSalt(): ?string
  389.     {
  390.         return null;
  391.     }
  392.     /**
  393.      * @see UserInterface
  394.      */
  395.     public function eraseCredentials()
  396.     {
  397.         // If you store any temporary, sensitive data on the user, clear it here
  398.         // $this->plainPassword = null;
  399.     }
  400.     /**
  401.      * @return bool
  402.      */
  403.     public function isVerified(): bool
  404.     {
  405.         return $this->isVerified;
  406.     }
  407.     /**
  408.      * @param bool $isVerified
  409.      * @return $this
  410.      */
  411.     public function setIsVerified(bool $isVerified): self
  412.     {
  413.         $this->isVerified $isVerified;
  414.         return $this;
  415.     }
  416.     /**
  417.      * @return bool|null
  418.      */
  419.     public function isActive(): ?bool
  420.     {
  421.         return $this->active;
  422.     }
  423.     /**
  424.      * @param bool|null $active
  425.      * @return $this
  426.      */
  427.     public function setActive(?bool $active): self
  428.     {
  429.         $this->active $active;
  430.         return $this;
  431.     }
  432.     /**
  433.      * @return string|null
  434.      */
  435.     public function getCode(): ?string
  436.     {
  437.         return $this->code;
  438.     }
  439.     /**
  440.      * @param string|null $code
  441.      * @return $this
  442.      */
  443.     public function setCode(?string $code): self
  444.     {
  445.         $this->code $code;
  446.         return $this;
  447.     }
  448.     /**
  449.      * @return int|null
  450.      */
  451.     public function getProvision(): ?int
  452.     {
  453.         return $this->provision;
  454.     }
  455.     /**
  456.      * @param int|null $provision
  457.      * @return $this
  458.      */
  459.     public function setProvision(?int $provision): self
  460.     {
  461.         $this->provision $provision;
  462.         return $this;
  463.     }
  464.     /**
  465.      * @return string|null
  466.      */
  467.     public function getName(): ?string
  468.     {
  469.         return $this->name;
  470.     }
  471.     /**
  472.      * @param string|null $name
  473.      * @return $this
  474.      */
  475.     public function setName(?string $name): self
  476.     {
  477.         $this->name $name;
  478.         return $this;
  479.     }
  480.     /**
  481.      * @return string|null
  482.      */
  483.     public function getSurname(): ?string
  484.     {
  485.         return $this->surname;
  486.     }
  487.     /**
  488.      * @param string|null $surname
  489.      * @return $this
  490.      */
  491.     public function setSurname(?string $surname): self
  492.     {
  493.         $this->surname $surname;
  494.         return $this;
  495.     }
  496.     /**
  497.      * @return string|null
  498.      */
  499.     public function getPersonType(): ?string
  500.     {
  501.         return $this->personType;
  502.     }
  503.     /**
  504.      * @param string|null $personType
  505.      * @return $this
  506.      */
  507.     public function setPersonType(?string $personType): self
  508.     {
  509.         $this->personType $personType;
  510.         return $this;
  511.     }
  512.     /**
  513.      * @return string|null
  514.      */
  515.     public function getNationality(): ?string
  516.     {
  517.         return $this->nationality;
  518.     }
  519.     /**
  520.      * @param string|null $nationality
  521.      * @return $this
  522.      */
  523.     public function setNationality(?string $nationality): self
  524.     {
  525.         $this->nationality $nationality;
  526.         return $this;
  527.     }
  528.     /**
  529.      * @return string|null
  530.      */
  531.     public function getTaxResidency(): ?string
  532.     {
  533.         return $this->taxResidency;
  534.     }
  535.     /**
  536.      * @param string|null $taxResidency
  537.      * @return $this
  538.      */
  539.     public function setTaxResidency(?string $taxResidency): self
  540.     {
  541.         $this->taxResidency $taxResidency;
  542.         return $this;
  543.     }
  544.     /**
  545.      * @return string|null
  546.      */
  547.     public function getAddress(): ?string
  548.     {
  549.         if (is_null($this->address)) {
  550.             return
  551.                 trim($this->getStreet() . ", " .
  552.                     $this->getTown() . ", " .
  553.                     $this->getPostal(), ", ");
  554.         }
  555.         return $this->address;
  556.     }
  557.     /**
  558.      * @param string|null $address
  559.      * @return $this
  560.      */
  561.     public function setAddress(?string $address): self
  562.     {
  563.         $this->address $address;
  564.         return $this;
  565.     }
  566.     /**
  567.      * @return string|null
  568.      */
  569.     public function getStreet(): ?string
  570.     {
  571.         return $this->street;
  572.     }
  573.     /**
  574.      * @param string|null $street
  575.      * @return $this
  576.      */
  577.     public function setStreet(?string $street): self
  578.     {
  579.         $this->street $street;
  580.         return $this;
  581.     }
  582.     /**
  583.      * @return string|null
  584.      */
  585.     public function getTown(): ?string
  586.     {
  587.         return $this->town;
  588.     }
  589.     /**
  590.      * @param string|null $town
  591.      * @return $this
  592.      */
  593.     public function setTown(?string $town): self
  594.     {
  595.         $this->town $town;
  596.         return $this;
  597.     }
  598.     /**
  599.      * @return string|null
  600.      */
  601.     public function getPostal(): ?string
  602.     {
  603.         return $this->postal;
  604.     }
  605.     /**
  606.      * @param string|null $postal
  607.      * @return $this
  608.      */
  609.     public function setPostal(?string $postal): self
  610.     {
  611.         $this->postal $postal;
  612.         return $this;
  613.     }
  614.     /**
  615.      * @return string|null
  616.      */
  617.     public function getAddress2(): ?string
  618.     {
  619.         if (is_null($this->address2)) {
  620.             return
  621.                 trim($this->getStreet2() . ", " .
  622.                     $this->getTown2() . ", " .
  623.                     $this->getPostal2(), ", ");
  624.         }
  625.         return $this->address2;
  626.     }
  627.     /**
  628.      * @param string|null $address
  629.      * @return $this
  630.      */
  631.     public function setAddress2(?string $address): self
  632.     {
  633.         $this->address2 $address;
  634.         return $this;
  635.     }
  636.     /**
  637.      * @return string|null
  638.      */
  639.     public function getStreet2(): ?string
  640.     {
  641.         return $this->street2;
  642.     }
  643.     /**
  644.      * @param string|null $street
  645.      * @return $this
  646.      */
  647.     public function setStreet2(?string $street): self
  648.     {
  649.         $this->street2 $street;
  650.         return $this;
  651.     }
  652.     /**
  653.      * @return string|null
  654.      */
  655.     public function getTown2(): ?string
  656.     {
  657.         return $this->town2;
  658.     }
  659.     /**
  660.      * @param string|null $town
  661.      * @return $this
  662.      */
  663.     public function setTown2(?string $town): self
  664.     {
  665.         $this->town2 $town;
  666.         return $this;
  667.     }
  668.     /**
  669.      * @return string|null
  670.      */
  671.     public function getPostal2(): ?string
  672.     {
  673.         return $this->postal2;
  674.     }
  675.     /**
  676.      * @param string|null $postal
  677.      * @return $this
  678.      */
  679.     public function setPostal2(?string $postal): self
  680.     {
  681.         $this->postal2 $postal;
  682.         return $this;
  683.     }
  684.     /**
  685.      * @return string|null
  686.      */
  687.     public function getIc(): ?string
  688.     {
  689.         return $this->ic;
  690.     }
  691.     /**
  692.      * @param string|null $ic
  693.      * @return $this
  694.      */
  695.     public function setIc(?string $ic): self
  696.     {
  697.         $this->ic $ic;
  698.         return $this;
  699.     }
  700.     /**
  701.      * @return string|null
  702.      */
  703.     public function getDic(): ?string
  704.     {
  705.         return $this->dic;
  706.     }
  707.     /**
  708.      * @param string|null $dic
  709.      * @return $this
  710.      */
  711.     public function setDic(?string $dic): self
  712.     {
  713.         $this->dic $dic;
  714.         return $this;
  715.     }
  716.     /**
  717.      * @return \DateTimeInterface|null
  718.      */
  719.     public function getBirthdate(): ?\DateTimeInterface
  720.     {
  721.         return $this->birthdate;
  722.     }
  723.     /**
  724.      * @param \DateTimeInterface|null $birthdate
  725.      * @return $this
  726.      */
  727.     public function setBirthdate(?\DateTimeInterface $birthdate): self
  728.     {
  729.         $this->birthdate $birthdate;
  730.         return $this;
  731.     }
  732.     /**
  733.      * @return string|null
  734.      */
  735.     public function getPhone(): ?string
  736.     {
  737.         return $this->phone;
  738.     }
  739.     /**
  740.      * @param string|null $phone
  741.      * @return $this
  742.      */
  743.     public function setPhone(?string $phone): self
  744.     {
  745.         $this->phone $phone;
  746.         return $this;
  747.     }
  748.     /**
  749.      * @return string|null
  750.      */
  751.     public function getBankName(): ?string
  752.     {
  753.         return $this->bankName;
  754.     }
  755.     /**
  756.      * @param string|null $bankName
  757.      * @return $this
  758.      */
  759.     public function setBankName(?string $bankName): self
  760.     {
  761.         $this->bankName $bankName;
  762.         return $this;
  763.     }
  764.     /**
  765.      * @return string|null
  766.      */
  767.     public function getBankAccount(): ?string
  768.     {
  769.         return $this->bankAccount;
  770.     }
  771.     /**
  772.      * @param string|null $bankAccount
  773.      * @return $this
  774.      */
  775.     public function setBankAccount(?string $bankAccount): self
  776.     {
  777.         $this->bankAccount $bankAccount;
  778.         return $this;
  779.     }
  780.     /**
  781.      * @return string|null
  782.      */
  783.     public function getSwift(): ?string
  784.     {
  785.         return $this->swift;
  786.     }
  787.     /**
  788.      * @param string|null $swift
  789.      * @return $this
  790.      */
  791.     public function setSwift(?string $swift): self
  792.     {
  793.         $this->swift $swift;
  794.         return $this;
  795.     }
  796.     /**
  797.      * @return string|null
  798.      */
  799.     public function getIban(): ?string
  800.     {
  801.         return $this->iban;
  802.     }
  803.     /**
  804.      * @param string|null $iban
  805.      * @return $this
  806.      */
  807.     public function setIban(?string $iban): self
  808.     {
  809.         $this->iban $iban;
  810.         return $this;
  811.     }
  812.     /**
  813.      * @return string|null
  814.      */
  815.     public function getNotes(): ?string
  816.     {
  817.         return $this->notes;
  818.     }
  819.     /**
  820.      * @param string|null $notes
  821.      * @return $this
  822.      */
  823.     public function setNotes(?string $notes): self
  824.     {
  825.         $this->notes $notes;
  826.         return $this;
  827.     }
  828.     /**
  829.      * @return string|null
  830.      */
  831.     public function getIdType(): ?string
  832.     {
  833.         return $this->idType;
  834.     }
  835.     /**
  836.      * @param string|null $idType
  837.      * @return $this
  838.      */
  839.     public function setIdType(?string $idType): self
  840.     {
  841.         $this->idType $idType;
  842.         return $this;
  843.     }
  844.     /**
  845.      * @return string|null
  846.      */
  847.     public function getIdNumber(): ?string
  848.     {
  849.         return $this->idNumber;
  850.     }
  851.     /**
  852.      * @param string|null $idNumber
  853.      * @return $this
  854.      */
  855.     public function setIdNumber(?string $idNumber): self
  856.     {
  857.         $this->idNumber $idNumber;
  858.         return $this;
  859.     }
  860.     /**
  861.      * @return string|null
  862.      */
  863.     public function getIdAuthor(): ?string
  864.     {
  865.         return $this->idAuthor;
  866.     }
  867.     /**
  868.      * @param string|null $idAuthor
  869.      * @return $this
  870.      */
  871.     public function setIdAuthor(?string $idAuthor): self
  872.     {
  873.         $this->idAuthor $idAuthor;
  874.         return $this;
  875.     }
  876.     /**
  877.      * @return \DateTimeInterface|null
  878.      */
  879.     public function getIdValidity(): ?\DateTimeInterface
  880.     {
  881.         return $this->idValidity;
  882.     }
  883.     /**
  884.      * @param \DateTimeInterface|null $idValidity
  885.      * @return $this
  886.      */
  887.     public function setIdValidity(?\DateTimeInterface $idValidity): self
  888.     {
  889.         $this->idValidity $idValidity;
  890.         return $this;
  891.     }
  892.     /**
  893.      * @return string|null
  894.      */
  895.     public function getBusinessmanRegistrationPlace(): ?string
  896.     {
  897.         return $this->businessmanRegistrationPlace;
  898.     }
  899.     /**
  900.      * @param string|null $businessmanRegistrationPlace
  901.      * @return $this
  902.      */
  903.     public function setBusinessmanRegistrationPlace(?string $businessmanRegistrationPlace): self
  904.     {
  905.         $this->businessmanRegistrationPlace $businessmanRegistrationPlace;
  906.         return $this;
  907.     }
  908.     /**
  909.      * @return string|null
  910.      */
  911.     public function getBusinessmanRegistrationNumber(): ?string
  912.     {
  913.         return $this->businessmanRegistrationNumber;
  914.     }
  915.     /**
  916.      * @param string|null $businessmanRegistrationNumber
  917.      * @return $this
  918.      */
  919.     public function setBusinessmanRegistrationNumber(?string $businessmanRegistrationNumber): self
  920.     {
  921.         $this->businessmanRegistrationNumber $businessmanRegistrationNumber;
  922.         return $this;
  923.     }
  924.     /**
  925.      * @return string|null
  926.      */
  927.     public function getCompanyRegistrationPlace(): ?string
  928.     {
  929.         return $this->companyRegistrationPlace;
  930.     }
  931.     /**
  932.      * @param string|null $companyRegistrationPlace
  933.      * @return $this
  934.      */
  935.     public function setCompanyRegistrationPlace(?string $companyRegistrationPlace): self
  936.     {
  937.         $this->companyRegistrationPlace $companyRegistrationPlace;
  938.         return $this;
  939.     }
  940.     /**
  941.      * @return string|null
  942.      */
  943.     public function getCompanyRegistrationNumber(): ?string
  944.     {
  945.         return $this->companyRegistrationNumber;
  946.     }
  947.     /**
  948.      * @param string|null $companyRegistrationNumber
  949.      * @return $this
  950.      */
  951.     public function setCompanyRegistrationNumber(?string $companyRegistrationNumber): self
  952.     {
  953.         $this->companyRegistrationNumber $companyRegistrationNumber;
  954.         return $this;
  955.     }
  956.     /**
  957.      * @return string|null
  958.      */
  959.     public function getCompanyRegistrationPartition(): ?string
  960.     {
  961.         return $this->companyRegistrationPartition;
  962.     }
  963.     /**
  964.      * @param string|null $companyRegistrationPartition
  965.      * @return $this
  966.      */
  967.     public function setCompanyRegistrationPartition(?string $companyRegistrationPartition): self
  968.     {
  969.         $this->companyRegistrationPartition $companyRegistrationPartition;
  970.         return $this;
  971.     }
  972.     /**
  973.      * @return string|null
  974.      */
  975.     public function getCompanyRegistrationInsertion(): ?string
  976.     {
  977.         return $this->companyRegistrationInsertion;
  978.     }
  979.     /**
  980.      * @param string|null $companyRegistrationInsertion
  981.      * @return $this
  982.      */
  983.     public function setCompanyRegistrationInsertion(?string $companyRegistrationInsertion): self
  984.     {
  985.         $this->companyRegistrationInsertion $companyRegistrationInsertion;
  986.         return $this;
  987.     }
  988.     /**
  989.      * @return string|null
  990.      */
  991.     public function getCompanyRepresentantive(): ?string
  992.     {
  993.         return $this->companyRepresentantive;
  994.     }
  995.     /**
  996.      * @param string|null $companyRepresentantive
  997.      * @return $this
  998.      */
  999.     public function setCompanyRepresentantive(?string $companyRepresentantive): self
  1000.     {
  1001.         $this->companyRepresentantive $companyRepresentantive;
  1002.         return $this;
  1003.     }
  1004.     /**
  1005.      * @return Collection<int, Order>
  1006.      */
  1007.     public function getOrders(): Collection
  1008.     {
  1009.         return $this->orders;
  1010.     }
  1011.     public function addOrder(Order $order): self
  1012.     {
  1013.         if (!$this->orders->contains($order)) {
  1014.             $this->orders[] = $order;
  1015.             $order->setUser($this);
  1016.         }
  1017.         return $this;
  1018.     }
  1019.     public function removeOrder(Order $order): self
  1020.     {
  1021.         if ($this->orders->removeElement($order)) {
  1022.             // set the owning side to null (unless already changed)
  1023.             if ($order->getUser() === $this) {
  1024.                 $order->setUser(null);
  1025.             }
  1026.         }
  1027.         return $this;
  1028.     }
  1029.     public function getCompany(): ?Company
  1030.     {
  1031.         return $this->company;
  1032.     }
  1033.     public function setCompany(?Company $company): self
  1034.     {
  1035.         $this->company $company;
  1036.         return $this;
  1037.     }
  1038.     public function isDeleted(): ?bool
  1039.     {
  1040.         return $this->deleted;
  1041.     }
  1042.     public function setDeleted(bool $deleted): self
  1043.     {
  1044.         $this->deleted $deleted;
  1045.         return $this;
  1046.     }
  1047.     public function getBankCode(): ?string
  1048.     {
  1049.         return $this->bankCode;
  1050.     }
  1051.     public function setBankCode(?string $bankCode): self
  1052.     {
  1053.         $this->bankCode $bankCode;
  1054.         return $this;
  1055.     }
  1056. //    public function getRelations(){
  1057. //
  1058. //    }
  1059. //    public function addRelation(){
  1060. //
  1061. //    }
  1062. //
  1063. //    public function removeRelation(){
  1064. //
  1065. //    }
  1066. //
  1067. //    public function getBosses(){
  1068. //        $this->relations->filter(function(){
  1069. //
  1070. //        });
  1071. //    }
  1072.     public function setBosses(Collection $bosses){
  1073.         $this->bosses $bosses;
  1074.     }
  1075.     /**
  1076.      * @return Collection<int, UserRelation>
  1077.      */
  1078.     public function getBosses($userRelation UserRelation::TYPE_STRUCTURE): Collection
  1079.     {
  1080.         if(is_null($userRelation) == false
  1081.             && ($userRelation == UserRelation::TYPE_REWARD || $userRelation == UserRelation::TYPE_STRUCTURE)){
  1082.             $filtered $this->bosses->filter(function(UserRelation $relation) use ($userRelation){
  1083.                 return $relation->getRelationType() == $userRelation;
  1084.             });
  1085.             return $filtered;
  1086.         }
  1087.         return $this->bosses;
  1088.     }
  1089.     public function addBoss(UserRelation $boss): self
  1090.     {
  1091.         if (!$this->bosses->contains($boss)) {
  1092.             $this->bosses[] = $boss;
  1093.             $boss->setBoss($this);
  1094.         }
  1095.         return $this;
  1096.     }
  1097.     public function removeBoss(UserRelation $boss): self
  1098.     {
  1099.         if ($this->bosses->removeElement($boss)) {
  1100.             // set the owning side to null (unless already changed)
  1101.             if ($boss->getBoss() === $this) {
  1102.                 $boss->setBoss(null);
  1103.             }
  1104.         }
  1105.         return $this;
  1106.     }
  1107.     /**
  1108.      * @return Collection<int, UserRelation>
  1109.      */
  1110.     public function getJuniors($kind UserRelation::TYPE_STRUCTURE): Collection
  1111.     {
  1112.         if(is_null($kind) == false && ($kind == UserRelation::TYPE_REWARD || $kind == UserRelation::TYPE_STRUCTURE)){
  1113.             $filtered $this->juniors->filter(function(UserRelation $relation) use ($kind){
  1114.                 return $relation->getRelationType() == $kind;
  1115.             });
  1116.             return $filtered;
  1117.         }
  1118.         return $this->juniors;
  1119.     }
  1120.     public function addJunior(UserRelation $junior): self
  1121.     {
  1122.         if (!$this->juniors->contains($junior)) {
  1123.             $this->juniors[] = $junior;
  1124.             $junior->setJunior($this);
  1125.         }
  1126.         return $this;
  1127.     }
  1128.     public function removeJunior(UserRelation $junior): self
  1129.     {
  1130.         if ($this->juniors->removeElement($junior)) {
  1131.             // set the owning side to null (unless already changed)
  1132.             if ($junior->getJunior() === $this) {
  1133.                 $junior->setJunior(null);
  1134.             }
  1135.         }
  1136.         return $this;
  1137.     }
  1138.     /**
  1139.      * @return Collection<int, InterestPaidoff>
  1140.      */
  1141.     public function getInterestPaidoffs(): Collection
  1142.     {
  1143.         return $this->interestPaidoffs;
  1144.     }
  1145.     public function addInterestPaidoff(InterestPaidoff $interestPaidoff): self
  1146.     {
  1147.         if (!$this->interestPaidoffs->contains($interestPaidoff)) {
  1148.             $this->interestPaidoffs[] = $interestPaidoff;
  1149.             $interestPaidoff->setCreatedBy($this);
  1150.         }
  1151.         return $this;
  1152.     }
  1153.     public function removeInterestPaidoff(InterestPaidoff $interestPaidoff): self
  1154.     {
  1155.         if ($this->interestPaidoffs->removeElement($interestPaidoff)) {
  1156.             // set the owning side to null (unless already changed)
  1157.             if ($interestPaidoff->getCreatedBy() === $this) {
  1158.                 $interestPaidoff->setCreatedBy(null);
  1159.             }
  1160.         }
  1161.         return $this;
  1162.     }
  1163.     /**
  1164.      * @return Collection<int, InterestPaidoffReport>
  1165.      */
  1166.     public function getInterestPaidoffReports(): Collection
  1167.     {
  1168.         return $this->interestPaidoffReports;
  1169.     }
  1170.     public function addInterestPaidoffReport(InterestPaidoffReport $interestPaidoffReport): self
  1171.     {
  1172.         if (!$this->interestPaidoffReports->contains($interestPaidoffReport)) {
  1173.             $this->interestPaidoffReports[] = $interestPaidoffReport;
  1174.             $interestPaidoffReport->setCreatedBy($this);
  1175.         }
  1176.         return $this;
  1177.     }
  1178.     public function removeInterestPaidoffReport(InterestPaidoffReport $interestPaidoffReport): self
  1179.     {
  1180.         if ($this->interestPaidoffReports->removeElement($interestPaidoffReport)) {
  1181.             // set the owning side to null (unless already changed)
  1182.             if ($interestPaidoffReport->getCreatedBy() === $this) {
  1183.                 $interestPaidoffReport->setCreatedBy(null);
  1184.             }
  1185.         }
  1186.         return $this;
  1187.     }
  1188.     /**
  1189.      * @return Collection<int, InvoiceAutomation>
  1190.      */
  1191.     public function getInvoices(): Collection
  1192.     {
  1193.         return $this->invoices;
  1194.     }
  1195.     public function addInvoice(InvoiceAutomation $invoice): self
  1196.     {
  1197.         if (!$this->invoices->contains($invoice)) {
  1198.             $this->invoices[] = $invoice;
  1199.             $invoice->setMerchant($this);
  1200.         }
  1201.         return $this;
  1202.     }
  1203.     public function removeInvoice(InvoiceAutomation $invoice): self
  1204.     {
  1205.         if ($this->invoices->removeElement($invoice)) {
  1206.             // set the owning side to null (unless already changed)
  1207.             if ($invoice->getMerchant() === $this) {
  1208.                 $invoice->setMerchant(null);
  1209.             }
  1210.         }
  1211.         return $this;
  1212.     }
  1213.     public function isInvoiceAutomation(): ?bool
  1214.     {
  1215.         return (bool)$this->invoiceAutomation;
  1216.     }
  1217.     public function setInvoiceAutomation(?bool $invoiceAutomation): self
  1218.     {
  1219.         $this->invoiceAutomation $invoiceAutomation;
  1220.         return $this;
  1221.     }
  1222.     public function getBankNameEur(): ?string
  1223.     {
  1224.         return $this->bankNameEur;
  1225.     }
  1226.     public function setBankNameEur(?string $bankNameEur): self
  1227.     {
  1228.         $this->bankNameEur $bankNameEur;
  1229.         return $this;
  1230.     }
  1231.     public function getBankAccountEur(): ?string
  1232.     {
  1233.         return $this->bankAccountEur;
  1234.     }
  1235.     public function setBankAccountEur(?string $bankAccountEur): self
  1236.     {
  1237.         $this->bankAccountEur $bankAccountEur;
  1238.         return $this;
  1239.     }
  1240.     public function getBankCodeEur(): ?string
  1241.     {
  1242.         return $this->bankCodeEur;
  1243.     }
  1244.     public function setBankCodeEur(?string $bankCodeEur): self
  1245.     {
  1246.         $this->bankCodeEur $bankCodeEur;
  1247.         return $this;
  1248.     }
  1249.     public function getIbanEur(): ?string
  1250.     {
  1251.         return $this->ibanEur;
  1252.     }
  1253.     public function setIbanEur(?string $ibanEur): self
  1254.     {
  1255.         $this->ibanEur $ibanEur;
  1256.         return $this;
  1257.     }
  1258.     public function getSwiftEur(): ?string
  1259.     {
  1260.         return $this->swiftEur;
  1261.     }
  1262.     public function setSwiftEur(?string $swiftEur): self
  1263.     {
  1264.         $this->swiftEur $swiftEur;
  1265.         return $this;
  1266.     }
  1267.     /**
  1268.      * @return Collection<int, InvoiceAutomationExpand>
  1269.      */
  1270.     public function getInvoiceAutomationExpands(): Collection
  1271.     {
  1272.         return $this->invoiceAutomationExpands;
  1273.     }
  1274.     public function addInvoiceAutomationExpand(InvoiceAutomationExpand $invoiceAutomationExpand): self
  1275.     {
  1276.         if (!$this->invoiceAutomationExpands->contains($invoiceAutomationExpand)) {
  1277.             $this->invoiceAutomationExpands[] = $invoiceAutomationExpand;
  1278.             $invoiceAutomationExpand->setUser($this);
  1279.         }
  1280.         return $this;
  1281.     }
  1282.     public function removeInvoiceAutomationExpand(InvoiceAutomationExpand $invoiceAutomationExpand): self
  1283.     {
  1284.         if ($this->invoiceAutomationExpands->removeElement($invoiceAutomationExpand)) {
  1285.             // set the owning side to null (unless already changed)
  1286.             if ($invoiceAutomationExpand->getUser() === $this) {
  1287.                 $invoiceAutomationExpand->setUser(null);
  1288.             }
  1289.         }
  1290.         return $this;
  1291.     }
  1292.     public function isAnonymize(): ?bool
  1293.     {
  1294.         return (bool)$this->anonymize;
  1295.     }
  1296.     public function setAnonymize(?bool $anonymize): self
  1297.     {
  1298.         $this->anonymize $anonymize;
  1299.         return $this;
  1300.     }
  1301.     public function getTipster(): ?int
  1302.     {
  1303.         return (int)$this->tipster;
  1304.     }
  1305.     public function setTipster(?string $tipster): self
  1306.     {
  1307.         $this->tipster $tipster;
  1308.         return $this;
  1309.     }
  1310. }