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 $company_name;
  53.     /**
  54.      * @ORM\Column(type="string", nullable=true)
  55.      * @Assert\Length(max="255")
  56.      */
  57.     private $company_ruc;
  58.     /**
  59.      * @ORM\Column(type="date", nullable=true)
  60.      */
  61.     private $next_play_on;
  62.     /**
  63.      * @var string The hashed password
  64.      * @ORM\Column(type="string")
  65.      */
  66.     private $password;
  67.     /**
  68.      * @ORM\OneToMany(targetEntity="RequestService", mappedBy="client")
  69.      */
  70.     private $request_services;
  71.     /**
  72.      * @ORM\OneToMany(targetEntity="RequestSparePart", mappedBy="client")
  73.      */
  74.     private $request_spare_parts;
  75.     /**
  76.      * UserClient constructor.
  77.      */
  78.     public function __construct()
  79.     {
  80.         parent::__construct();
  81.         $this->request_services = new ArrayCollection();
  82.         $this->request_spare_parts = new ArrayCollection();
  83.     }
  84.     /**
  85.      * A visual identifier that represents this user.
  86.      *
  87.      * @see UserInterface
  88.      */
  89.     public function getUserIdentifier(): string
  90.     {
  91.         return (string) $this->email;
  92.     }
  93.     /**
  94.      * @deprecated since Symfony 5.3, use getUserIdentifier instead
  95.      */
  96.     public function getUsername(): string
  97.     {
  98.         return (string) $this->email;
  99.     }
  100.     /**
  101.      * @see UserInterface
  102.      */
  103.     public function getRoles(): array
  104.     {
  105.         $roles $this->roles;
  106.         // guarantee every user at least has ROLE_USER
  107.         $roles[] = 'ROLE_USER';
  108.         return array_unique($roles);
  109.     }
  110.     public function setRoles(array $roles): self
  111.     {
  112.         $this->roles $roles;
  113.         return $this;
  114.     }
  115.     /**
  116.      * @see PasswordAuthenticatedUserInterface
  117.      */
  118.     public function getPassword(): string
  119.     {
  120.         return $this->password;
  121.     }
  122.     public function setPassword(string $password): self
  123.     {
  124.         $this->password $password;
  125.         return $this;
  126.     }
  127.     /**
  128.      * Returning a salt is only needed, if you are not using a modern
  129.      * hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.
  130.      *
  131.      * @see UserInterface
  132.      */
  133.     public function getSalt(): ?string
  134.     {
  135.         return null;
  136.     }
  137.     /**
  138.      * @see UserInterface
  139.      */
  140.     public function eraseCredentials()
  141.     {
  142.         // If you store any temporary, sensitive data on the user, clear it here
  143.         // $this->plainPassword = null;
  144.     }
  145.     public function getId(): ?int
  146.     {
  147.         return $this->id;
  148.     }
  149.     public function getEmail(): ?string
  150.     {
  151.         return $this->email;
  152.     }
  153.     public function setEmail(string $email): self
  154.     {
  155.         $this->email $email;
  156.         return $this;
  157.     }
  158.     public function getName(): ?string
  159.     {
  160.         return $this->name;
  161.     }
  162.     public function setName(?string $name): self
  163.     {
  164.         $this->name $name;
  165.         return $this;
  166.     }
  167.     public function getDocument(): ?string
  168.     {
  169.         return $this->document;
  170.     }
  171.     public function setDocument(?string $document): self
  172.     {
  173.         $this->document $document;
  174.         return $this;
  175.     }
  176.     public function getPhone(): ?string
  177.     {
  178.         return $this->phone;
  179.     }
  180.     public function setPhone(?string $phone): self
  181.     {
  182.         $this->phone $phone;
  183.         return $this;
  184.     }
  185.     public function getType(): ?string
  186.     {
  187.         return $this->type;
  188.     }
  189.     public function setType(?string $type): self
  190.     {
  191.         $this->type $type;
  192.         return $this;
  193.     }
  194.     public function getCompanyName(): ?string
  195.     {
  196.         return $this->company_name;
  197.     }
  198.     public function setCompanyName(?string $company_name): self
  199.     {
  200.         $this->company_name $company_name;
  201.         return $this;
  202.     }
  203.     public function getCompanyRuc(): ?string
  204.     {
  205.         return $this->company_ruc;
  206.     }
  207.     public function setCompanyRuc(?string $company_ruc): self
  208.     {
  209.         $this->company_ruc $company_ruc;
  210.         return $this;
  211.     }
  212.     public function getNextPlayOn(): ?\DateTimeInterface
  213.     {
  214.         return $this->next_play_on;
  215.     }
  216.     public function setNextPlayOn(?\DateTimeInterface $next_play_on): self
  217.     {
  218.         $this->next_play_on $next_play_on;
  219.         return $this;
  220.     }
  221.     /**
  222.      * @return Collection<int, RequestService>
  223.      */
  224.     public function getRequestServices(): Collection
  225.     {
  226.         return $this->request_services;
  227.     }
  228.     public function addRequestService(RequestService $requestService): self
  229.     {
  230.         if (!$this->request_services->contains($requestService)) {
  231.             $this->request_services[] = $requestService;
  232.             $requestService->setClient($this);
  233.         }
  234.         return $this;
  235.     }
  236.     public function removeRequestService(RequestService $requestService): self
  237.     {
  238.         if ($this->request_services->removeElement($requestService)) {
  239.             // set the owning side to null (unless already changed)
  240.             if ($requestService->getClient() === $this) {
  241.                 $requestService->setClient(null);
  242.             }
  243.         }
  244.         return $this;
  245.     }
  246.     /**
  247.      * @return Collection<int, RequestSparePart>
  248.      */
  249.     public function getRequestSpareParts(): Collection
  250.     {
  251.         return $this->request_spare_parts;
  252.     }
  253.     public function addRequestSparePart(RequestSparePart $requestSparePart): self
  254.     {
  255.         if (!$this->request_spare_parts->contains($requestSparePart)) {
  256.             $this->request_spare_parts[] = $requestSparePart;
  257.             $requestSparePart->setClient($this);
  258.         }
  259.         return $this;
  260.     }
  261.     public function removeRequestSparePart(RequestSparePart $requestSparePart): self
  262.     {
  263.         if ($this->request_spare_parts->removeElement($requestSparePart)) {
  264.             // set the owning side to null (unless already changed)
  265.             if ($requestSparePart->getClient() === $this) {
  266.                 $requestSparePart->setClient(null);
  267.             }
  268.         }
  269.         return $this;
  270.     }
  271. }