src/Entity/UserClient.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\UserClientRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  8. use Symfony\Component\Security\Core\User\UserInterface;
  9. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  10. use Symfony\Component\Validator\Constraints as Assert;
  11. /**
  12.  * @ORM\Entity(repositoryClass=UserClientRepository::class)
  13.  * @UniqueEntity(fields={"email"}, message="Correo electrónico registrado anteriormente")
  14.  * @UniqueEntity(fields={"document"}, message="Número de documento registrado anteriormente")
  15.  */
  16. class UserClient extends BaseEntity implements UserInterfacePasswordAuthenticatedUserInterface
  17. {
  18.     const USER_TYPE_CLIENT 'user';
  19.     /**
  20.      * @ORM\Column(type="string", length=180, unique=true)
  21.      * @Assert\Length(max="180")
  22.      * @Assert\NotBlank()
  23.      */
  24.     private $email;
  25.     /**
  26.      * @ORM\Column(type="json")
  27.      */
  28.     private $roles = [];
  29.     /**
  30.      * @ORM\Column(type="text", nullable=true)
  31.      */
  32.     private $name;
  33.     /**
  34.      * @ORM\Column(type="string", length=15, nullable=true, unique=true)
  35.      * @Assert\Length(max="15")
  36.      */
  37.     private $document;
  38.     /**
  39.      * @ORM\Column(type="string", length=15, nullable=true)
  40.      * @Assert\Length(max="15")
  41.      */
  42.     private $phone;
  43.     /**
  44.      * @ORM\Column(type="string", length=100, nullable=true)
  45.      * @Assert\Length(max="100")
  46.      */
  47.     private $type;
  48.     /**
  49.      * @ORM\Column(type="string", nullable=true)
  50.      * @Assert\Length(max="255")
  51.      */
  52.     private $address;
  53.     /**
  54.      * @ORM\Column(type="date", nullable=true)
  55.      */
  56.     private $next_play_on;
  57.     /**
  58.      * @var string The hashed password
  59.      * @ORM\Column(type="string")
  60.      */
  61.     private $password;
  62.     /**
  63.      * @ORM\OneToMany(targetEntity="RequestService", mappedBy="client")
  64.      */
  65.     private $request_services;
  66.     /**
  67.      * @ORM\OneToMany(targetEntity="RequestSparePart", mappedBy="client")
  68.      */
  69.     private $request_spare_parts;
  70.     /**
  71.      * UserClient constructor.
  72.      */
  73.     public function __construct()
  74.     {
  75.         parent::__construct();
  76.         $this->request_services = new ArrayCollection();
  77.         $this->request_spare_parts = new ArrayCollection();
  78.     }
  79.     /**
  80.      * A visual identifier that represents this user.
  81.      *
  82.      * @see UserInterface
  83.      */
  84.     public function getUserIdentifier(): string
  85.     {
  86.         return (string) $this->email;
  87.     }
  88.     /**
  89.      * @deprecated since Symfony 5.3, use getUserIdentifier instead
  90.      */
  91.     public function getUsername(): string
  92.     {
  93.         return (string) $this->email;
  94.     }
  95.     /**
  96.      * @see UserInterface
  97.      */
  98.     public function getRoles(): array
  99.     {
  100.         $roles $this->roles;
  101.         // guarantee every user at least has ROLE_USER
  102.         $roles[] = 'ROLE_USER';
  103.         return array_unique($roles);
  104.     }
  105.     public function setRoles(array $roles): self
  106.     {
  107.         $this->roles $roles;
  108.         return $this;
  109.     }
  110.     /**
  111.      * @see PasswordAuthenticatedUserInterface
  112.      */
  113.     public function getPassword(): string
  114.     {
  115.         return $this->password;
  116.     }
  117.     public function setPassword(string $password): self
  118.     {
  119.         $this->password $password;
  120.         return $this;
  121.     }
  122.     /**
  123.      * Returning a salt is only needed, if you are not using a modern
  124.      * hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.
  125.      *
  126.      * @see UserInterface
  127.      */
  128.     public function getSalt(): ?string
  129.     {
  130.         return null;
  131.     }
  132.     /**
  133.      * @see UserInterface
  134.      */
  135.     public function eraseCredentials()
  136.     {
  137.         // If you store any temporary, sensitive data on the user, clear it here
  138.         // $this->plainPassword = null;
  139.     }
  140.     public function getId(): ?int
  141.     {
  142.         return $this->id;
  143.     }
  144.     public function getEmail(): ?string
  145.     {
  146.         return $this->email;
  147.     }
  148.     public function setEmail(string $email): self
  149.     {
  150.         $this->email $email;
  151.         return $this;
  152.     }
  153.     public function getName(): ?string
  154.     {
  155.         return $this->name;
  156.     }
  157.     public function setName(?string $name): self
  158.     {
  159.         $this->name $name;
  160.         return $this;
  161.     }
  162.     public function getDocument(): ?string
  163.     {
  164.         return $this->document;
  165.     }
  166.     public function setDocument(?string $document): self
  167.     {
  168.         $this->document $document;
  169.         return $this;
  170.     }
  171.     public function getPhone(): ?string
  172.     {
  173.         return $this->phone;
  174.     }
  175.     public function setPhone(?string $phone): self
  176.     {
  177.         $this->phone $phone;
  178.         return $this;
  179.     }
  180.     public function getType(): ?string
  181.     {
  182.         return $this->type;
  183.     }
  184.     public function setType(?string $type): self
  185.     {
  186.         $this->type $type;
  187.         return $this;
  188.     }
  189.     public function getAddress(): ?string
  190.     {
  191.         return $this->address;
  192.     }
  193.     public function setAddress(?string $address): self
  194.     {
  195.         $this->address $address;
  196.         return $this;
  197.     }
  198.     public function getNextPlayOn(): ?\DateTimeInterface
  199.     {
  200.         return $this->next_play_on;
  201.     }
  202.     public function setNextPlayOn(?\DateTimeInterface $next_play_on): self
  203.     {
  204.         $this->next_play_on $next_play_on;
  205.         return $this;
  206.     }
  207.     /**
  208.      * @return Collection<int, RequestService>
  209.      */
  210.     public function getRequestServices(): Collection
  211.     {
  212.         return $this->request_services;
  213.     }
  214.     public function addRequestService(RequestService $requestService): self
  215.     {
  216.         if (!$this->request_services->contains($requestService)) {
  217.             $this->request_services[] = $requestService;
  218.             $requestService->setClient($this);
  219.         }
  220.         return $this;
  221.     }
  222.     public function removeRequestService(RequestService $requestService): self
  223.     {
  224.         if ($this->request_services->removeElement($requestService)) {
  225.             // set the owning side to null (unless already changed)
  226.             if ($requestService->getClient() === $this) {
  227.                 $requestService->setClient(null);
  228.             }
  229.         }
  230.         return $this;
  231.     }
  232.     /**
  233.      * @return Collection<int, RequestSparePart>
  234.      */
  235.     public function getRequestSpareParts(): Collection
  236.     {
  237.         return $this->request_spare_parts;
  238.     }
  239.     public function addRequestSparePart(RequestSparePart $requestSparePart): self
  240.     {
  241.         if (!$this->request_spare_parts->contains($requestSparePart)) {
  242.             $this->request_spare_parts[] = $requestSparePart;
  243.             $requestSparePart->setClient($this);
  244.         }
  245.         return $this;
  246.     }
  247.     public function removeRequestSparePart(RequestSparePart $requestSparePart): self
  248.     {
  249.         if ($this->request_spare_parts->removeElement($requestSparePart)) {
  250.             // set the owning side to null (unless already changed)
  251.             if ($requestSparePart->getClient() === $this) {
  252.                 $requestSparePart->setClient(null);
  253.             }
  254.         }
  255.         return $this;
  256.     }
  257. }