src/Entity/User.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\UserRepository;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  6. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  7. use Symfony\Component\Security\Core\User\UserInterface;
  8. use Doctrine\Common\Collections\ArrayCollection;
  9. use Doctrine\Common\Collections\Collection;
  10. use Symfony\Component\Validator\Constraints as Assert;
  11. /**
  12.  * @ORM\Entity(repositoryClass=UserRepository::class)
  13.  * @UniqueEntity(fields={"username"}, message="El nombre de usuario ya está en uso.")
  14.  * @UniqueEntity(fields={"email"}, message="El correo electrónico ya está en uso.")
  15.  */
  16. class User implements UserInterfacePasswordAuthenticatedUserInterface {
  17.     /**
  18.      * @ORM\Id
  19.      * @ORM\GeneratedValue
  20.      * @ORM\Column(type="integer")
  21.      */
  22.     private $id;
  23.     /**
  24.      * @ORM\Column(type="string", length=180, unique=true)
  25.      * @Assert\NotBlank
  26.      */
  27.     private $username;
  28.     /**
  29.      * @ORM\Column(type="json")
  30.      */
  31.     private $roles = [];
  32.     /**
  33.      * @var string The hashed password
  34.      * @ORM\Column(type="string")
  35.      */
  36.     private $password;
  37.     /**
  38.      * @ORM\Column(type="string", length=255, unique=true)
  39.      * @Assert\Email
  40.      * @Assert\NotBlank
  41.      */
  42.     private $email;
  43.     /**
  44.      * @ORM\Column(type="integer")
  45.      */
  46.     private $creditos;
  47.     /**
  48.      * @ORM\Column(type="boolean")
  49.      */
  50.     private $isVerified false;
  51.     /**
  52.      * @ORM\Column(type="string", length=255)
  53.      */
  54.     private $token;
  55.     /**
  56.      * @ORM\Column(type="integer")
  57.      */
  58.     private $pelo;
  59.     /**
  60.      * @ORM\Column(type="integer")
  61.      */
  62.     private $camisa;
  63.     /**
  64.      * @ORM\Column(type="integer")
  65.      */
  66.     private $pants;
  67.     /**
  68.      * @ORM\Column(type="string", length=3, nullable=true)
  69.      */
  70.     private $placa;
  71.     /**
  72.      * @ORM\OneToMany(targetEntity=Categoria::class, mappedBy="user")
  73.      */
  74.     private $categorias;
  75.     /**
  76.      * @ORM\OneToMany(targetEntity=HistorialCompra::class, mappedBy="user", orphanRemoval=true)
  77.      */
  78.     private $historialCompras;
  79.     /**
  80.      * @ORM\Column(type="datetime", nullable=true)
  81.      */
  82.     private $vipExpirationDate;
  83.     
  84.     /**
  85.      * @ORM\Column(type="string", nullable=true)
  86.      */
  87.     private $resetToken;
  88.     /**
  89.      * @ORM\Column(type="datetime", nullable=true)
  90.      */
  91.     private $resetTokenExpiresAt;
  92.     /**
  93.      * @ORM\Column(type="string", length=255, nullable=true)
  94.      */
  95.     private $ipLastLogin;
  96.     /**
  97.      * @ORM\OneToOne(targetEntity=BannedUsers::class, mappedBy="user", cascade={"persist", "remove"})
  98.      */
  99.     private $userBan;
  100.     /**
  101.      * @ORM\OneToMany(targetEntity=BannedUsers::class, mappedBy="moderator")
  102.      */
  103.     private $bannedUsers;
  104.     /**
  105.      * @ORM\Column(type="datetime", nullable=true)
  106.      */
  107.     private $fechaRegistro;
  108.     /**
  109.      * @ORM\Column(type="integer", nullable=true)
  110.      */
  111.     private $zapatos;
  112.     public function __construct() {
  113.         $this->categorias = new ArrayCollection();
  114.         $this->historialCompras = new ArrayCollection();
  115.         $this->bannedUsers = new ArrayCollection();
  116.     }
  117.     public function getId(): ?int {
  118.         return $this->id;
  119.     }
  120.     /**
  121.      * @deprecated since Symfony 5.3, use getUserIdentifier instead
  122.      */
  123.     public function getUsername(): string {
  124.         return (string) $this->username;
  125.     }
  126.     public function setUsername(string $username): self {
  127.         $this->username $username;
  128.         return $this;
  129.     }
  130.     /**
  131.      * A visual identifier that represents this user.
  132.      *
  133.      * @see UserInterface
  134.      */
  135.     public function getUserIdentifier(): string {
  136.         return (string) $this->username;
  137.     }
  138.     /**
  139.      * @see UserInterface
  140.      */
  141.     public function getRoles(): array {
  142.         $roles $this->roles;
  143.         // guarantee every user at least has ROLE_USER
  144.         $roles[] = 'ROLE_USER';
  145.         return array_unique($roles);
  146.     }
  147.     public function setRoles(array $roles): self {
  148.         $this->roles $roles;
  149.         return $this;
  150.     }
  151.     /**
  152.      * @see PasswordAuthenticatedUserInterface
  153.      */
  154.     public function getPassword(): string {
  155.         return $this->password;
  156.     }
  157.     public function setPassword(string $password): self {
  158.         $this->password $password;
  159.         return $this;
  160.     }
  161.     public function getEmail(): ?string {
  162.         return $this->email;
  163.     }
  164.     public function setEmail(?string $email): self {
  165.         $this->email $email;
  166.         return $this;
  167.     }
  168.     public function getCreditos(): ?int {
  169.         return $this->creditos;
  170.     }
  171.     public function setCreditos(int $creditos): self {
  172.         $this->creditos $creditos;
  173.         return $this;
  174.     }
  175.     /**
  176.      * Returning a salt is only needed, if you are not using a modern
  177.      * hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.
  178.      *
  179.      * @see UserInterface
  180.      */
  181.     public function getSalt(): ?string {
  182.         return null;
  183.     }
  184.     /**
  185.      * @see UserInterface
  186.      */
  187.     public function eraseCredentials() {
  188.         // If you store any temporary, sensitive data on the user, clear it here
  189.         // $this->plainPassword = null;
  190.     }
  191.     public function isVerified(): bool {
  192.         return $this->isVerified;
  193.     }
  194.     public function setIsVerified(bool $isVerified): self {
  195.         $this->isVerified $isVerified;
  196.         return $this;
  197.     }
  198.     public function getToken(): ?string {
  199.         return $this->token;
  200.     }
  201.     public function setToken(string $token): self {
  202.         $this->token $token;
  203.         return $this;
  204.     }
  205.     public function getPelo(): ?int {
  206.         return $this->pelo;
  207.     }
  208.     public function setPelo(int $pelo): self {
  209.         $this->pelo $pelo;
  210.         return $this;
  211.     }
  212.     public function getCamisa(): ?int {
  213.         return $this->camisa;
  214.     }
  215.     public function setCamisa(int $camisa): self {
  216.         $this->camisa $camisa;
  217.         return $this;
  218.     }
  219.     public function getPants(): ?int {
  220.         return $this->pants;
  221.     }
  222.     public function setPants(int $pants): self {
  223.         $this->pants $pants;
  224.         return $this;
  225.     }
  226.     public function getPlaca(): ?string {
  227.         return $this->placa;
  228.     }
  229.     public function setPlaca(?string $placa): self {
  230.         $this->placa $placa;
  231.         return $this;
  232.     }
  233.     /**
  234.      * @return Collection|Categoria[]
  235.      */
  236.     public function getCategorias(): Collection {
  237.         return $this->categorias;
  238.     }
  239.     public function addCategoria(Categoria $categoria): self {
  240.         if (!$this->categorias->contains($categoria)) {
  241.             $this->categorias[] = $categoria;
  242.             $categoria->setUser($this);
  243.         }
  244.         return $this;
  245.     }
  246.     public function removeCategoria(Categoria $categoria): self {
  247.         if ($this->categorias->removeElement($categoria)) {
  248.             // set the owning side to null (unless already changed)
  249.             if ($categoria->getUser() === $this) {
  250.                 $categoria->setUser(null);
  251.             }
  252.         }
  253.         return $this;
  254.     }
  255.     /**
  256.      * @return Collection<int, HistorialCompra>
  257.      */
  258.     public function getHistorialCompras(): Collection
  259.     {
  260.         return $this->historialCompras;
  261.     }
  262.     public function addHistorialCompra(HistorialCompra $historialCompra): self
  263.     {
  264.         if (!$this->historialCompras->contains($historialCompra)) {
  265.             $this->historialCompras[] = $historialCompra;
  266.             $historialCompra->setUser($this);
  267.         }
  268.         return $this;
  269.     }
  270.     public function removeHistorialCompra(HistorialCompra $historialCompra): self
  271.     {
  272.         if ($this->historialCompras->removeElement($historialCompra)) {
  273.             // set the owning side to null (unless already changed)
  274.             if ($historialCompra->getUser() === $this) {
  275.                 $historialCompra->setUser(null);
  276.             }
  277.         }
  278.         return $this;
  279.     }
  280.     public function getVipExpirationDate(): ?\DateTimeInterface
  281.     {
  282.         return $this->vipExpirationDate;
  283.     }
  284.     public function setVipExpirationDate(?\DateTimeInterface $vipExpirationDate): self
  285.     {
  286.         $this->vipExpirationDate $vipExpirationDate;
  287.         return $this;
  288.     }
  289.     
  290.     public function getResetToken(): ?string
  291.     {
  292.         return $this->resetToken;
  293.     }
  294.     public function setResetToken(?string $resetToken): self
  295.     {
  296.         $this->resetToken $resetToken;
  297.         return $this;
  298.     }
  299.     public function getResetTokenExpiresAt(): ?\DateTimeInterface
  300.     {
  301.         return $this->resetTokenExpiresAt;
  302.     }
  303.     public function setResetTokenExpiresAt(?\DateTimeInterface $resetTokenExpiresAt): self
  304.     {
  305.         $this->resetTokenExpiresAt $resetTokenExpiresAt;
  306.         return $this;
  307.     }
  308.     public function getIpLastLogin(): ?string
  309.     {
  310.         return $this->ipLastLogin;
  311.     }
  312.     public function setIpLastLogin(?string $ipLastLogin): self
  313.     {
  314.         $this->ipLastLogin $ipLastLogin;
  315.         return $this;
  316.     }
  317.     public function getUserBan(): ?BannedUsers
  318.     {
  319.         return $this->userBan;
  320.     }
  321.     public function setUserBan(BannedUsers $userBan): self
  322.     {
  323.         // set the owning side of the relation if necessary
  324.         if ($userBan->getUser() !== $this) {
  325.             $userBan->setUser($this);
  326.         }
  327.         $this->userBan $userBan;
  328.         return $this;
  329.     }
  330.     /**
  331.      * @return Collection<int, BannedUsers>
  332.      */
  333.     public function getBannedUsers(): Collection
  334.     {
  335.         return $this->bannedUsers;
  336.     }
  337.     public function addBannedUser(BannedUsers $bannedUser): self
  338.     {
  339.         if (!$this->bannedUsers->contains($bannedUser)) {
  340.             $this->bannedUsers[] = $bannedUser;
  341.             $bannedUser->setModerator($this);
  342.         }
  343.         return $this;
  344.     }
  345.     public function removeBannedUser(BannedUsers $bannedUser): self
  346.     {
  347.         if ($this->bannedUsers->removeElement($bannedUser)) {
  348.             // set the owning side to null (unless already changed)
  349.             if ($bannedUser->getModerator() === $this) {
  350.                 $bannedUser->setModerator(null);
  351.             }
  352.         }
  353.         return $this;
  354.     }
  355.     public function getFechaRegistro(): ?\DateTimeInterface
  356.     {
  357.         return $this->fechaRegistro;
  358.     }
  359.     public function setFechaRegistro(?\DateTimeInterface $fechaRegistro): self
  360.     {
  361.         $this->fechaRegistro $fechaRegistro;
  362.         return $this;
  363.     }
  364.     public function getZapatos(): ?int
  365.     {
  366.         return $this->zapatos;
  367.     }
  368.     public function setZapatos(?int $zapatos): self
  369.     {
  370.         $this->zapatos $zapatos;
  371.         return $this;
  372.     }
  373. }