src/Entity/User.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\UserRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  7. use Symfony\Component\Security\Core\User\UserInterface;
  8. use Doctrine\ORM\Mapping as ORM;
  9. /**
  10.  * @ORM\Entity(repositoryClass=UserRepository::class)
  11.  * @UniqueEntity("email")
  12.  * @UniqueEntity("username")
  13.  */
  14. class User implements UserInterface
  15. {
  16.     /**
  17.      * @ORM\Id
  18.      * @ORM\GeneratedValue
  19.      * @ORM\Column(type="integer")
  20.      */
  21.     private $id;
  22.     /**
  23.      * @ORM\Column(type="string", length=255)
  24.      */
  25.     private $nom;
  26.     /**
  27.      * @ORM\Column(type="string", length=255)
  28.      */
  29.     private $email;
  30.     /**
  31.      * @ORM\Column(type="string", length=255)
  32.      */
  33.     private $password;
  34.     /**
  35.      * @ORM\Column(type="string", length=255, nullable=true)
  36.      */
  37.     private $country;
  38.     /**
  39.      * @ORM\OneToMany(targetEntity=Livre::class, mappedBy="user")
  40.      */
  41.     private $livres;
  42.     /**
  43.      * @ORM\OneToMany(targetEntity=Demande::class, mappedBy="user")
  44.      */
  45.     private $demandes;
  46.     /**
  47.      * @ORM\Column(type="string", length=255, nullable=true)
  48.      */
  49.     private $username;
  50.     /**
  51.      * @ORM\OneToMany(targetEntity=Favori::class, mappedBy="User")
  52.      */
  53.     private $favoris;
  54.     /**
  55.      * @ORM\OneToMany(targetEntity=Notification::class, mappedBy="user")
  56.      */
  57.     private $notifications;
  58.     public function __construct()
  59.     {
  60.         $this->livres = new ArrayCollection();
  61.         $this->demandes = new ArrayCollection();
  62.         $this->favoris = new ArrayCollection();
  63.         $this->notifications = new ArrayCollection();
  64.     }
  65.     public function getId(): ?int
  66.     {
  67.         return $this->id;
  68.     }
  69.     public function getNom(): ?string
  70.     {
  71.         return $this->nom;
  72.     }
  73.     public function setNom(string $nom): self
  74.     {
  75.         $this->nom $nom;
  76.         return $this;
  77.     }
  78.     public function getEmail(): ?string
  79.     {
  80.         return $this->email;
  81.     }
  82.     public function setEmail(string $email): self
  83.     {
  84.         $this->email $email;
  85.         return $this;
  86.     }
  87.     public function getPassword(): ?string
  88.     {
  89.         return $this->password;
  90.     }
  91.     public function setPassword(string $password): self
  92.     {
  93.         $this->password $password;
  94.         return $this;
  95.     }
  96.     public function getCountry(): ?string
  97.     {
  98.         return $this->country;
  99.     }
  100.     public function setCountry(?string $country): self
  101.     {
  102.         $this->country $country;
  103.         return $this;
  104.     }
  105.     public function getUsername()
  106.     {
  107.         return $this->username;
  108.     }
  109.     public function eraseCredentials()
  110.     {
  111.     }
  112.     public function getSalt()
  113.     {
  114.     }
  115.     public function getRoles()
  116.     {
  117.         return ['ROLE_USER'];
  118.     }
  119.     public function getUserIdentifier(): string
  120.     {
  121.         return $this->getEmail();
  122.     }
  123.     /**
  124.      * @return Collection<int, Livre>
  125.      */
  126.     public function getLivres(): Collection
  127.     {
  128.         return $this->livres;
  129.     }
  130.     public function addLivre(Livre $livre): self
  131.     {
  132.         if (!$this->livres->contains($livre)) {
  133.             $this->livres[] = $livre;
  134.             $livre->setUser($this);
  135.         }
  136.         return $this;
  137.     }
  138.     public function removeLivre(Livre $livre): self
  139.     {
  140.         if ($this->livres->removeElement($livre)) {
  141.             // set the owning side to null (unless already changed)
  142.             if ($livre->getUser() === $this) {
  143.                 $livre->setUser(null);
  144.             }
  145.         }
  146.         return $this;
  147.     }
  148.     /**
  149.      * @return Collection<int, Demande>
  150.      */
  151.     public function getDemandes(): Collection
  152.     {
  153.         return $this->demandes;
  154.     }
  155.     public function addDemande(Demande $demande): self
  156.     {
  157.         if (!$this->demandes->contains($demande)) {
  158.             $this->demandes[] = $demande;
  159.             $demande->setUser($this);
  160.         }
  161.         return $this;
  162.     }
  163.     public function removeDemande(Demande $demande): self
  164.     {
  165.         if ($this->demandes->removeElement($demande)) {
  166.             // set the owning side to null (unless already changed)
  167.             if ($demande->getUser() === $this) {
  168.                 $demande->setUser(null);
  169.             }
  170.         }
  171.         return $this;
  172.     }
  173.     public function setUsername(?string $username): self
  174.     {
  175.         $this->username $username;
  176.         return $this;
  177.     }
  178.     /**
  179.      * @return Collection<int, Favori>
  180.      */
  181.     public function getFavoris(): Collection
  182.     {
  183.         return $this->favoris;
  184.     }
  185.     public function addFavori(Favori $favori): self
  186.     {
  187.         if (!$this->favoris->contains($favori)) {
  188.             $this->favoris[] = $favori;
  189.             $favori->setUser($this);
  190.         }
  191.         return $this;
  192.     }
  193.     public function removeFavori(Favori $favori): self
  194.     {
  195.         if ($this->favoris->removeElement($favori)) {
  196.             // set the owning side to null (unless already changed)
  197.             if ($favori->getUser() === $this) {
  198.                 $favori->setUser(null);
  199.             }
  200.         }
  201.         return $this;
  202.     }
  203.     /**
  204.      * @return Collection<int, Notification>
  205.      */
  206.     public function getNotifications(): Collection
  207.     {
  208.         return $this->notifications;
  209.     }
  210.     public function addNotification(Notification $notification): self
  211.     {
  212.         if (!$this->notifications->contains($notification)) {
  213.             $this->notifications[] = $notification;
  214.             $notification->setUser($this);
  215.         }
  216.         return $this;
  217.     }
  218.     public function removeNotification(Notification $notification): self
  219.     {
  220.         if ($this->notifications->removeElement($notification)) {
  221.             // set the owning side to null (unless already changed)
  222.             if ($notification->getUser() === $this) {
  223.                 $notification->setUser(null);
  224.             }
  225.         }
  226.         return $this;
  227.     }
  228. }