src/Entity/User.php line 34

Open in your IDE?
  1. <?php
  2. /*
  3.  * This event is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * event that was distributed with this source code.
  9.  */
  10. namespace App\Entity;
  11. use Doctrine\ORM\Mapping as ORM;
  12. use Doctrine\Common\Collections\ArrayCollection;
  13. use Doctrine\Common\Collections\Collection;
  14. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  15. use Symfony\Component\Security\Core\User\UserInterface;
  16. use Symfony\Component\Validator\Constraints as Assert;
  17. /**
  18.  * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
  19.  * @ORM\Table(name="user")
  20.  *
  21.  * Defines the properties of the User entity to represent the application users.
  22.  * See https://symfony.com/doc/current/doctrine.html#creating-an-entity-class
  23.  *
  24.  * Tip: if you have an existing database, you can generate these entity class automatically.
  25.  * See https://symfony.com/doc/current/doctrine/reverse_engineering.html
  26.  *
  27.  * @author Ryan Weaver <weaverryan@gmail.com>
  28.  * @author Javier Eguiluz <javier.eguiluz@gmail.com>
  29.  */
  30. class User implements UserInterfacePasswordAuthenticatedUserInterface {
  31.     /**
  32.      * @ORM\Id
  33.      * @ORM\GeneratedValue
  34.      * @ORM\Column(type="integer")
  35.      */
  36.     private ?int $id null;
  37.     /**
  38.      * @ORM\Column(type="string")
  39.      */
  40.     #[Assert\NotBlank]
  41.     private ?string $firstname null;
  42.     
  43.     /**
  44.      * @ORM\Column(type="string")
  45.      */
  46.     #[Assert\NotBlank]
  47.     private ?string $lastname null;
  48.     /**
  49.      * @ORM\Column(type="string", unique=true)
  50.      */
  51.     #[
  52.         Assert\NotBlank,
  53.         Assert\Length(min2max50)
  54.     ]
  55.     private ?string $username null;
  56.     /**
  57.      * @ORM\Column(type="string", nullable=true)
  58.      */
  59.     private ?string $published "1";
  60.     
  61.     /**
  62.      * @ORM\Column(type="string", nullable=true)
  63.      */
  64.     private ?string $bio;
  65.     /**
  66.      * @ORM\Column(type="datetime", nullable=true)
  67.      */
  68.     private \DateTime $createdAt;
  69.     /**
  70.      * @ORM\Column(type="string", nullable=true)
  71.      */
  72.     private ?string $emailVerification "0";
  73.     /**
  74.      * @ORM\Column(type="string", unique=true)
  75.      */
  76.     #[Assert\Email]
  77.     private ?string $email null;
  78.     /**
  79.      * @ORM\Column(type="string", nullable=true)
  80.      */
  81.     private ?string $password null;
  82.     /**
  83.      * @ORM\Column(type="string", nullable=true)
  84.      */
  85.     private ?string $tokenreset null;
  86.     /**
  87.      * @ORM\Column(type="string", nullable=true)
  88.      */
  89.     private ?string $phone null;
  90.     /**
  91.      * @ORM\Column(type="string", nullable=true)
  92.      */
  93.     private ?string $country null;
  94.     
  95.     /**
  96.      * @ORM\Column(type="string", nullable=true)
  97.      */
  98.     private ?string $gender null;
  99. //    1 men 0 women
  100.     
  101.     /**
  102.      * @ORM\Column(type="string", nullable=true)
  103.      */
  104.     private ?string $address null;
  105.     /**
  106.      * @ORM\Column(type="json")
  107.      */
  108.     private array $roles = [];
  109.     
  110.     /**
  111.      * @ORM\Column(type="string", nullable=true)
  112.      */
  113.     private ?string $image null;
  114.     public function __construct() {
  115.         $this->createdAt = new \DateTime('now');
  116.     }
  117.     public function getId(): ?int {
  118.         return $this->id;
  119.     }
  120.     public function setFullName(string $fullName): void {
  121.         $this->fullName $fullName;
  122.     }
  123.     public function getFullName(): ?string {
  124.         return $this->fullName;
  125.     }
  126.     public function getUserIdentifier(): string {
  127.         return $this->username;
  128.     }
  129.     public function getFirstname(): ?string {
  130.         return $this->firstname;
  131.     }
  132.     public function getLastname(): ?string {
  133.         return $this->lastname;
  134.     }
  135.     public function getUsername(): ?string {
  136.         return $this->username;
  137.     }
  138.     public function getBio(): ?string {
  139.         return $this->bio;
  140.     }
  141.     public function getEmail(): ?string {
  142.         return $this->email;
  143.     }
  144.     public function getPassword(): ?string {
  145.         return $this->password;
  146.     }
  147.     public function setFirstname(?string $firstname): void {
  148.         $this->firstname $firstname;
  149.     }
  150.     public function setLastname(?string $lastname): void {
  151.         $this->lastname $lastname;
  152.     }
  153.     public function setUsername(?string $username): void {
  154.         $this->username $username;
  155.     }
  156.     public function getPublished(): ?string {
  157.         return $this->published;
  158.     }
  159.     public function setPublished(?string $published): void {
  160.         $this->published $published;
  161.     }
  162.         public function setBio(?string $bio): void {
  163.         $this->bio $bio;
  164.     }
  165.     public function setEmail(?string $email): void {
  166.         $this->email $email;
  167.     }
  168.     public function setPassword(?string $password): void {
  169.         $this->password $password;
  170.     }
  171.     
  172.     /**
  173.      * Returns the roles or permissions granted to the user for security.
  174.      */
  175.     public function getRoles(): array {
  176.         $roles $this->roles;
  177.         // guarantees that a user always has at least one role for security
  178.         if (empty($roles)) {
  179.             $roles[] = 'ROLE_USER';
  180.         }
  181.         return array_unique($roles);
  182.     }
  183.     public function setRoles(array $roles): void {
  184.         $this->roles $roles;
  185.     }
  186.     public function getTokenreset(): ?string {
  187.         return $this->tokenreset;
  188.     }
  189.     public function setTokenreset(?string $tokenreset): void {
  190.         $this->tokenreset $tokenreset;
  191.     }
  192.     public function getEmailVerification(): ?string {
  193.         return $this->emailVerification;
  194.     }
  195.     public function setEmailVerification(?string $emailVerification): void {
  196.         $this->emailVerification $emailVerification;
  197.     }
  198.     public function getPhone(): ?string {
  199.         return $this->phone;
  200.     }
  201.     public function setPhone(?string $phone): void {
  202.         $this->phone $phone;
  203.     }
  204.     public function getCreatedAt(): \DateTime {
  205.         return $this->createdAt;
  206.     }
  207.     public function setCreatedAt(\DateTime $createdAt): void {
  208.         $this->createdAt $createdAt;
  209.     }
  210.         
  211.     /**
  212.      * Returns the salt that was originally used to encode the password.
  213.      *
  214.      * {@inheritdoc}
  215.      */
  216.     public function getSalt(): ?string {
  217.         // We're using bcrypt in security.yaml to encode the password, so
  218.         // the salt value is built-in and you don't have to generate one
  219.         // See https://en.wikipedia.org/wiki/Bcrypt
  220.         return null;
  221.     }
  222.     /**
  223.      * Removes sensitive data from the user.
  224.      *
  225.      * {@inheritdoc}
  226.      */
  227.     public function eraseCredentials(): void {
  228.         // if you had a plainPassword property, you'd nullify it here
  229.         // $this->plainPassword = null;
  230.     }
  231.     public function __serialize(): array {
  232.         // add $this->salt too if you don't use Bcrypt or Argon2i
  233.         return [$this->id$this->username$this->password];
  234.     }
  235.     public function __unserialize(array $data): void {
  236.         // add $this->salt too if you don't use Bcrypt or Argon2i
  237.         [$this->id$this->username$this->password] = $data;
  238.     }
  239.     public function getImage(): ?string {
  240.         return $this->image;
  241.     }
  242.     public function setImage(?string $image): void {
  243.         $this->image $image;
  244.     }
  245.     public function getCountry(): ?string {
  246.         return $this->country;
  247.     }
  248.     public function getAddress(): ?string {
  249.         return $this->address;
  250.     }
  251.     public function setCountry(?string $country): void {
  252.         $this->country $country;
  253.     }
  254.     public function setAddress(?string $address): void {
  255.         $this->address $address;
  256.     }
  257.     public function getGender(): ?string {
  258.         return $this->gender;
  259.     }
  260.     public function setGender(?string $gender): void {
  261.         $this->gender $gender;
  262.     }
  263. }