src/Entity/User.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\UserRepository;
  4. use Doctrine\DBAL\Types\Types;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  7. use Symfony\Component\Security\Core\User\UserInterface;
  8. use Symfony\Component\Security\Core\User\EquatableInterface;
  9. use Doctrine\Common\Collections\ArrayCollection;
  10. use Doctrine\Common\Collections\Collection;
  11. #[ORM\Entity(repositoryClassUserRepository::class)]
  12. #[ORM\Table(name'`users`')]
  13. class User implements UserInterfacePasswordAuthenticatedUserInterface
  14. {
  15.     #[ORM\Id]
  16.     #[ORM\GeneratedValue]
  17.     #[ORM\Column]
  18.     private ?int $id null;
  19.    
  20.     #[ORM\Column(length180uniquetrue)]
  21.     protected ?string $email null;
  22.     #[ORM\Column(type'json_document'options: ['jsonb' => true])]
  23.     private array $roles = ['ROLE_USER'];
  24.     /**
  25.      * @var string The hashed password
  26.      */
  27.     #[ORM\Column (nullabletrue)]
  28.     private ?string $password null;
  29.     #[ORM\Column(length255nullabletrue)]
  30.     protected ?string $firstName null;
  31.     #[ORM\Column(length255nullabletrue)]
  32.     protected ?string $lastName null;
  33.     #[ORM\Column(typeTypes::DATETIME_MUTABLEnullabletrue)]
  34.     protected ?\DateTimeInterface $created_at ;
  35.     #[ORM\Column(nullabletrue)]
  36.     protected ?string $phoneNumber null;
  37.     #[ORM\Column(typeTypes::STRINGlength255nullabletrue)]
  38.     protected ?string $user_address null;
  39.     /*
  40.     const BROKER = 'broker';
  41.     const ACCOUNTANT = 'accountant';
  42.     const TENANT = 'tenant';
  43.     const LANDLORD = 'landlord';
  44.     const OTHER = 'other';
  45.     /*
  46.     //#[ORM\Column(length: 255, nullable: true)]
  47.     #[ORM\Column(nullable:true)]
  48.     private ?array $userType = null;
  49.     */
  50.     #[ORM\OneToOne(inversedBy'users'cascade: ['persist''remove'])]
  51.     private ?Broker $broker null;
  52.     #[ORM\OneToOne(inversedBy'users'cascade: ['persist''remove'])]
  53.     private ?Accounting $accountant null;
  54.     #[ORM\OneToOne(inversedBy'users'cascade: ['persist''remove'])]
  55.     private ?Landlords $landlord null;
  56.     #[ORM\Column(length255nullabletrue)]
  57.     private ?string $userCity null;
  58.     #[ORM\Column(length255nullabletrue)]
  59.     private ?string $userPostcode null;
  60.     #[ORM\OneToOne(inversedBy'users'cascade: ['persist''remove'])]
  61.     private ?Tenants $tenant null;
  62.     #[ORM\Column(length255nullabletrue)]
  63.     private ?string $floor null;
  64.     #[ORM\Column(length255nullabletrue)]
  65.     private ?string $bloque null;
  66.     #[ORM\Column(length255nullabletrue)]
  67.     private ?string $escalera null;
  68.     #[ORM\Column(length255nullabletrue)]
  69.     private ?string $province null;
  70.     #[ORM\Column(length255nullabletrue)]
  71.     private ?string $property_number null;
  72.     #[ORM\Column(length255nullabletrue)]
  73.     private ?string $postcode null;
  74.     #[ORM\OneToMany(mappedBy'uploadedByUser'targetEntityDocuments::class,  cascade: ['persist','remove'])]
  75.     private Collection $document;
  76.     #[ORM\OneToMany(mappedBy'uploadedByUser'targetEntityDocsTenants::class, cascade: ['persist','remove'])]
  77.     private Collection $tenantDocument;
  78.     #[ORM\OneToMany(mappedBy'generatedBy'targetEntityMonthlyReport::class, cascade: ['persist','remove'])]
  79.     private Collection $monthlyReports;
  80.     #[ORM\Column(length255nullabletrue)]
  81.     private ?string $flatNumber null;
  82.     #[ORM\Column(typeTypes::ARRAY, nullabletrue)]
  83.     private ?array $userType null;
  84.     #[ORM\OneToOne(inversedBy'users'cascade: ['persist''remove'])]
  85.     private ?PotentialClients $potentialClient null;
  86.     #[ORM\OneToMany(mappedBy'uploadedBy'targetEntityDocsLandlords::class)]
  87.     private Collection $docsLandlords;
  88.     #[ORM\OneToMany(mappedBy'admin'targetEntityMinutes::class, cascade:['persist','remove'])]
  89.     private Collection $minutes;
  90.     #[ORM\OneToMany(mappedBy'uploadedBy'targetEntityDocsPotentials::class, cascade:['persist','remove'])]
  91.     private Collection $docsPotentials;
  92.     #[ORM\ManyToMany(targetEntityEvent::class, mappedBy'users'cascade:['persist','remove'])]
  93.     private Collection $events;
  94.     
  95.     public function __toString(): string
  96.     {
  97.         return $this->getFirstName().' '.$this->getLastname();
  98.     }
  99.     public function getId(): ?int
  100.     {
  101.         return $this->id;
  102.     }
  103.    
  104.     public function getEmail(): ?string
  105.     {
  106.         return $this->email;
  107.     }
  108.     public function setEmail(string $email): self
  109.     {
  110.         $this->email $email;
  111.         return $this;
  112.     }
  113.     /**
  114.      * A visual identifier that represents this user.
  115.      *
  116.      * @see UserInterface
  117.      */
  118.     public function getUserIdentifier(): string
  119.     {
  120.         return (string) $this->email;
  121.     }
  122.     /**
  123.      * @deprecated since Symfony 5.3, use getUserIdentifier instead
  124.      */
  125.     public function getUsername(): string
  126.     {
  127.         return (string) $this->email;
  128.     }
  129.     
  130.     /**
  131.      * @see UserInterface
  132.      */
  133.     public function getRoles(): array
  134.     {
  135.         if (is_array($this->roles)) {
  136.             $roles $this->roles;
  137.         } elseif (is_object($this->roles)) {
  138.             $roles array_values((array) $this->roles);
  139.         } else {
  140.             $roles = [];
  141.         }
  142.     
  143.         // Guarantee every user has at least ROLE_USER
  144.         $roles[] = 'ROLE_USER';
  145.     
  146.         return array_unique($roles);
  147.         
  148.         /*        
  149.         $roles = $this->roles;
  150.         // guarantee every user at least has ROLE_USER
  151.         $roles[] = 'ROLE_USER';
  152.         //$roles[] = 'ROLE_ADMIN';
  153.         return array_unique($roles);
  154.         */
  155.     }
  156.     public function setRoles(array $roles): self
  157.     {
  158.        
  159.         $this->roles $roles;
  160.         if (!in_array('ROLE_USER'$roles)) {
  161.             $this->roles[] = 'ROLE_USER';
  162.         }
  163.         return $this;
  164.         
  165.     }
  166.     
  167.     /**
  168.      * @see PasswordAuthenticatedUserInterface
  169.      */
  170.     public function getPassword(): string
  171.     {
  172.         return $this->password;
  173.     }
  174.     public function setPassword(string $password): self
  175.     {
  176.         $this->password $password;
  177.         return $this;
  178.     }
  179.     /**
  180.      * Returning a salt is only needed, if you are not using a modern
  181.      * hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.
  182.      *
  183.      * @see UserInterface
  184.      */
  185.     public function getSalt(): ?string
  186.     {
  187.         return null;
  188.     }
  189.     /**
  190.      * @see UserInterface
  191.      */
  192.     public function eraseCredentials()
  193.     {
  194.         // If you store any temporary, sensitive data on the user, clear it here
  195.         // $this->plainPassword = null;
  196.     }
  197.     
  198.     public function getFirstName(): ?string
  199.     {
  200.         return $this->firstName;
  201.     }
  202.     public function setFirstName(?string $firstName): self
  203.     {
  204.         $this->firstName $firstName;
  205.         return $this;
  206.     }
  207.     public function getLastName(): ?string
  208.     {
  209.         return $this->lastName;
  210.     }
  211.     public function setLastName(?string $lastName): self
  212.     {
  213.         $this->lastName $lastName;
  214.         return $this;
  215.     }
  216.     
  217.     public function getCreatedAt(): ?\DateTimeInterface
  218.     {
  219.         return $this->created_at;
  220.     }
  221.     public function setCreatedAt(\DateTimeInterface $created_at): self
  222.     {
  223.         $this->created_at $created_at ;
  224.         return $this;
  225.     }
  226.     
  227.     public function __construct()
  228.     {
  229.         $this->created_at = new \DateTime();
  230.         $this->document = new ArrayCollection();
  231.         $this->tenantDocument = new ArrayCollection();
  232.         $this->roles = [];
  233.         $this->monthlyReports = new ArrayCollection();
  234.         $this->docsLandlords = new ArrayCollection();
  235.         $this->minutes = new ArrayCollection();
  236.         $this->docsPotentials = new ArrayCollection();
  237.         $this->events = new ArrayCollection();
  238.     }
  239.     public function getPhoneNumber(): ?string
  240.     {
  241.         return $this->phoneNumber;
  242.     }
  243.     public function setPhoneNumber(?string $phoneNumber): self
  244.     {
  245.         $this->phoneNumber $phoneNumber;
  246.         return $this;
  247.     }
  248.     public function getUserAddress(): ?string
  249.     {
  250.         return $this->user_address;
  251.     }
  252.     public function setUserAddress(string $user_address): self
  253.     {
  254.         $this->user_address $user_address;
  255.         return $this;
  256.     }
  257.     /*
  258.     public function getUserType(): array
  259.     {
  260.         return $this->userType;
  261.     }
  262.     public function setUserType(array $userType): void
  263.     {
  264.         $this->userType = $userType;
  265.         //return $this;
  266.     }
  267.     */
  268.     //public static function getUserTypes(): array
  269.     //{
  270.     //    return [
  271.     //        self::BROKER,
  272.     //        self::ACCOUNTANT,
  273.     //        self::TENANT,
  274.     //        self::LANDLORD,
  275.     //        self::OTHER,
  276.     //    ];
  277.     //}
  278.     public function getBroker(): ?Broker
  279.     {
  280.         return $this->broker;
  281.     }
  282.     public function setBroker(?Broker $broker): self
  283.     {
  284.         $this->broker $broker;
  285.         return $this;
  286.     }
  287.     public function getAccountant(): ?Accounting
  288.     {
  289.         return $this->accountant;
  290.     }
  291.     public function setAccountant(?Accounting $accountant): self
  292.     {
  293.         $this->accountant $accountant;
  294.         return $this;
  295.     }
  296.     public function getLandlord(): ?Landlords
  297.     {
  298.         return $this->landlord;
  299.     }
  300.     public function setLandlord(?Landlords $landlord): self
  301.     {
  302.         $this->landlord $landlord;
  303.         return $this;
  304.     }
  305.     public function getUserCity(): ?string
  306.     {
  307.         return $this->userCity;
  308.     }
  309.     public function setUserCity(?string $userCity): self
  310.     {
  311.         $this->userCity $userCity;
  312.         return $this;
  313.     }
  314.     public function getUserPostcode(): ?string
  315.     {
  316.         return $this->userPostcode;
  317.     }
  318.     public function setUserPostcode(?string $userPostcode): self
  319.     {
  320.         $this->userPostcode $userPostcode;
  321.         return $this;
  322.     }
  323.     public function getTenant(): ?Tenants
  324.     {
  325.         return $this->tenant;
  326.     }
  327.     public function setTenant(?Tenants $tenant): self
  328.     {
  329.         $this->tenant $tenant;
  330.         return $this;
  331.     }
  332.     public function getFloor(): ?string
  333.     {
  334.         return $this->floor;
  335.     }
  336.     public function setFloor(?string $floor): self
  337.     {
  338.         $this->floor $floor;
  339.         return $this;
  340.     }
  341.     public function getBloque(): ?string
  342.     {
  343.         return $this->bloque;
  344.     }
  345.     public function setBloque(?string $bloque): self
  346.     {
  347.         $this->bloque $bloque;
  348.         return $this;
  349.     }
  350.     public function getEscalera(): ?string
  351.     {
  352.         return $this->escalera;
  353.     }
  354.     public function setEscalera(?string $escalera): self
  355.     {
  356.         $this->escalera $escalera;
  357.         return $this;
  358.     }
  359.     public function getProvince(): ?string
  360.     {
  361.         return $this->province;
  362.     }
  363.     public function setProvince(?string $province): self
  364.     {
  365.         $this->province $province;
  366.         return $this;
  367.     }
  368.     public function getPropertyNumber(): ?string
  369.     {
  370.         return $this->property_number;
  371.     }
  372.     public function setPropertyNumber(?string $property_number): self
  373.     {
  374.         $this->property_number $property_number;
  375.         return $this;
  376.     }
  377.     public function getPostcode(): ?string
  378.     {
  379.         return $this->postcode;
  380.     }
  381.     public function setPostcode(?string $postcode): self
  382.     {
  383.         $this->postcode $postcode;
  384.         return $this;
  385.     }
  386.     /**
  387.      * @return Collection<int, Documents>
  388.      */
  389.     public function getDocument(): Collection
  390.     {
  391.         return $this->document;
  392.     }
  393.     public function addDocument(Documents $document): self
  394.     {
  395.         if (!$this->document->contains($document)) {
  396.             $this->document->add($document);
  397.             $document->setUploadedByUser($this);
  398.         }
  399.         return $this;
  400.     }
  401.     public function removeDocument(Documents $document): self
  402.     {
  403.         if ($this->document->removeElement($document)) {
  404.             // set the owning side to null (unless already changed)
  405.             if ($document->getUploadedByUser() === $this) {
  406.                 $document->setUploadedByUser(null);
  407.             }
  408.         }
  409.         return $this;
  410.     }
  411.     /**
  412.      * @return Collection<int, DocsTenants>
  413.      */
  414.     public function getTenantDocument(): Collection
  415.     {
  416.         return $this->tenantDocument;
  417.     }
  418.     public function addTenantDocument(DocsTenants $tenantDocument): self
  419.     {
  420.         if (!$this->tenantDocument->contains($tenantDocument)) {
  421.             $this->tenantDocument->add($tenantDocument);
  422.             $tenantDocument->setUploadedByUser($this);
  423.         }
  424.         return $this;
  425.     }
  426.     public function removeTenantDocument(DocsTenants $tenantDocument): self
  427.     {
  428.         if ($this->tenantDocument->removeElement($tenantDocument)) {
  429.             // set the owning side to null (unless already changed)
  430.             if ($tenantDocument->getUploadedByUser() === $this) {
  431.                 $tenantDocument->setUploadedByUser(null);
  432.             }
  433.         }
  434.         return $this;
  435.     }
  436.     /**
  437.      * @return Collection<int, MonthlyReport>
  438.      */
  439.     public function getMonthlyReports(): Collection
  440.     {
  441.         return $this->monthlyReports;
  442.     }
  443.     public function addMonthlyReport(MonthlyReport $monthlyReport): self
  444.     {
  445.         if (!$this->monthlyReports->contains($monthlyReport)) {
  446.             $this->monthlyReports->add($monthlyReport);
  447.             $monthlyReport->setGeneratedBy($this);
  448.         }
  449.         return $this;
  450.     }
  451.     public function removeMonthlyReport(MonthlyReport $monthlyReport): self
  452.     {
  453.         if ($this->monthlyReports->removeElement($monthlyReport)) {
  454.             // set the owning side to null (unless already changed)
  455.             if ($monthlyReport->getGeneratedBy() === $this) {
  456.                 $monthlyReport->setGeneratedBy(null);
  457.             }
  458.         }
  459.         return $this;
  460.     }
  461.     public function getFlatNumber(): ?string
  462.     {
  463.         return $this->flatNumber;
  464.     }
  465.     public function setFlatNumber(?string $flatNumber): self
  466.     {
  467.         $this->flatNumber $flatNumber;
  468.         return $this;
  469.     }
  470.     public function getUserType(): ?array
  471.     {
  472.         return $this->userType ?? [];
  473.     }
  474.     public function setUserType(?array $userType): self
  475.     {
  476.         $this->userType $userType;
  477.         return $this;
  478.     }
  479.     public function getPotentialClient(): ?PotentialClients
  480.     {
  481.         return $this->potentialClient;
  482.     }
  483.     public function setPotentialClient(?PotentialClients $potentialClient): self
  484.     {
  485.         $this->potentialClient $potentialClient;
  486.         return $this;
  487.     }
  488.     /**
  489.      * @return Collection<int, DocsLandlords>
  490.      */
  491.     public function getDocsLandlords(): Collection
  492.     {
  493.         return $this->docsLandlords;
  494.     }
  495.     public function addDocsLandlord(DocsLandlords $docsLandlord): self
  496.     {
  497.         if (!$this->docsLandlords->contains($docsLandlord)) {
  498.             $this->docsLandlords->add($docsLandlord);
  499.             $docsLandlord->setUploadedBy($this);
  500.         }
  501.         return $this;
  502.     }
  503.     public function removeDocsLandlord(DocsLandlords $docsLandlord): self
  504.     {
  505.         if ($this->docsLandlords->removeElement($docsLandlord)) {
  506.             // set the owning side to null (unless already changed)
  507.             if ($docsLandlord->getUploadedBy() === $this) {
  508.                 $docsLandlord->setUploadedBy(null);
  509.             }
  510.         }
  511.         return $this;
  512.     }
  513.     /**
  514.      * @return Collection<int, Minutes>
  515.      */
  516.     public function getMinutes(): Collection
  517.     {
  518.         return $this->minutes;
  519.     }
  520.     public function addMinute(Minutes $minute): self
  521.     {
  522.         if (!$this->minutes->contains($minute)) {
  523.             $this->minutes->add($minute);
  524.             $minute->setAdmin($this);
  525.         }
  526.         return $this;
  527.     }
  528.     public function removeMinute(Minutes $minute): self
  529.     {
  530.         if ($this->minutes->removeElement($minute)) {
  531.             // set the owning side to null (unless already changed)
  532.             if ($minute->getAdmin() === $this) {
  533.                 $minute->setAdmin(null);
  534.             }
  535.         }
  536.         return $this;
  537.     }
  538.     /**
  539.      * @return Collection<int, DocsPotentials>
  540.      */
  541.     public function getDocsPotentials(): Collection
  542.     {
  543.         return $this->docsPotentials;
  544.     }
  545.     public function addDocsPotential(DocsPotentials $docsPotential): static
  546.     {
  547.         if (!$this->docsPotentials->contains($docsPotential)) {
  548.             $this->docsPotentials->add($docsPotential);
  549.             $docsPotential->setUploadedBy($this);
  550.         }
  551.         return $this;
  552.     }
  553.     public function removeDocsPotential(DocsPotentials $docsPotential): static
  554.     {
  555.         if ($this->docsPotentials->removeElement($docsPotential)) {
  556.             // set the owning side to null (unless already changed)
  557.             if ($docsPotential->getUploadedBy() === $this) {
  558.                 $docsPotential->setUploadedBy(null);
  559.             }
  560.         }
  561.         return $this;
  562.     }
  563.     /**
  564.      * @return Collection<int, Event>
  565.      */
  566.     public function getEvents(): Collection
  567.     {
  568.         return $this->events;
  569.     }
  570.     public function addEvent(Event $event): static
  571.     {
  572.         if (!$this->events->contains($event)) {
  573.             $this->events->add($event);
  574.             $event->addUser($this);
  575.         }
  576.         return $this;
  577.     }
  578.     public function removeEvent(Event $event): static
  579.     {
  580.         if ($this->events->removeElement($event)) {
  581.             $event->removeUser($this);
  582.         }
  583.         return $this;
  584.     }
  585.  
  586.   
  587. }