src/Entity/User.php line 15

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 Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Component\Security\Core\User\UserInterface;
  8. /**
  9.  * @ORM\Entity(repositoryClass=UserRepository::class)
  10.  * @ORM\Table(name="`user`")
  11.  */
  12. class User implements UserInterface
  13. {
  14.     /**
  15.      * @ORM\Id
  16.      * @ORM\GeneratedValue
  17.      * @ORM\Column(type="integer")
  18.      */
  19.     private $id;
  20.     /**
  21.      * @ORM\Column(type="text")
  22.      */
  23.     private $token;
  24.     /**
  25.      * @ORM\Column(type="text", nullable=true)
  26.      */
  27.     private $fullname;
  28.     /**
  29.      * @ORM\Column(type="string", length=180, unique=true)
  30.      */
  31.     private $phone;
  32.     /**
  33.      * @ORM\Column(type="string", length=200, nullable=true)
  34.      */
  35.     private $email;
  36.     /**
  37.      * @ORM\Column(type="text", nullable=true)
  38.      */
  39.     private $address;
  40.     /**
  41.      * @ORM\Column(type="string", length=20, nullable=true)
  42.      */
  43.     private $type;
  44.     /**
  45.      * @ORM\Column(type="text", nullable=true)
  46.      */
  47.     private $company;
  48.     /**
  49.      * @ORM\Column(type="integer", options={"default" : 0}))
  50.      */
  51.     private $balance 0;
  52.     /**
  53.      * @ORM\Column(type="integer", options={"default" : 0}))
  54.      */
  55.     private $credit 0;
  56.     /**
  57.      * @ORM\Column(type="json")
  58.      */
  59.     private $roles = [];
  60.     /**
  61.      * @ORM\Column(type="datetime"))
  62.      */
  63.     private $created_at;
  64.     /**
  65.      * @ORM\Column(type="datetime"))
  66.      */
  67.     private $updated_at;
  68.     /**
  69.      * @ORM\OneToMany(targetEntity=Campaign::class, mappedBy="created_by")
  70.      */
  71.     private $campaigns;
  72.     /**
  73.      * @ORM\OneToMany(targetEntity=Media::class, mappedBy="created_by")
  74.      */
  75.     private $media;
  76.     /**
  77.      * @ORM\OneToMany(targetEntity=Notif::class, mappedBy="recepient")
  78.      */
  79.     private $notifs;
  80.     /**
  81.      * @ORM\OneToMany(targetEntity=Transaction::class, mappedBy="linked")
  82.      */
  83.     private $transactions;
  84.     /**
  85.      * @ORM\OneToMany(targetEntity=Payment::class, mappedBy="created_by")
  86.      */
  87.     private $payments;
  88.     public function __construct()
  89.     {
  90.         $this->campaigns = new ArrayCollection();
  91.         $this->media = new ArrayCollection();
  92.         $this->notifs = new ArrayCollection();
  93.         $this->transactions = new ArrayCollection();
  94.         $this->payments = new ArrayCollection();
  95.     }
  96.     public function getId(): ?int
  97.     {
  98.         return $this->id;
  99.     }
  100.     public function getPhone(): ?string
  101.     {
  102.         return $this->phone;
  103.     }
  104.     public function setPhone(string $phone): self
  105.     {
  106.         $this->phone $phone;
  107.         return $this;
  108.     }
  109.     /**
  110.      * A visual identifier that represents this user.
  111.      *
  112.      * @see UserInterface
  113.      */
  114.     public function getUsername(): string
  115.     {
  116.         return (string) $this->phone;
  117.     }
  118.     /**
  119.      * @see UserInterface
  120.      */
  121.     public function getRoles(): array
  122.     {
  123.         $roles $this->roles;
  124.         // guarantee every user at least has ROLE_USER
  125.         $roles[] = 'ROLE_USER';
  126.         return array_unique($roles);
  127.     }
  128.     public function setRoles(array $roles): self
  129.     {
  130.         $this->roles $roles;
  131.         return $this;
  132.     }
  133.     /**
  134.      * This method is not needed for apps that do not check user passwords.
  135.      *
  136.      * @see UserInterface
  137.      */
  138.     public function getPassword(): ?string
  139.     {
  140.         return null;
  141.     }
  142.     /**
  143.      * This method is not needed for apps that do not check user passwords.
  144.      *
  145.      * @see UserInterface
  146.      */
  147.     public function getSalt(): ?string
  148.     {
  149.         return null;
  150.     }
  151.     /**
  152.      * @see UserInterface
  153.      */
  154.     public function eraseCredentials()
  155.     {
  156.         // If you store any temporary, sensitive data on the user, clear it here
  157.         // $this->plainPassword = null;
  158.     }
  159.     public function getToken(): ?string
  160.     {
  161.         return $this->token;
  162.     }
  163.     public function setToken(string $token): self
  164.     {
  165.         $this->token $token;
  166.         return $this;
  167.     }
  168.     public function getFullname(): ?string
  169.     {
  170.         return $this->fullname;
  171.     }
  172.     public function setFullname(?string $fullname): self
  173.     {
  174.         $this->fullname $fullname;
  175.         return $this;
  176.     }
  177.     public function getEmail(): ?string
  178.     {
  179.         return $this->email;
  180.     }
  181.     public function setEmail(?string $email): self
  182.     {
  183.         $this->email $email;
  184.         return $this;
  185.     }
  186.     public function getAddress(): ?string
  187.     {
  188.         return $this->address;
  189.     }
  190.     public function setAddress(?string $address): self
  191.     {
  192.         $this->address $address;
  193.         return $this;
  194.     }
  195.     public function getType(): ?string
  196.     {
  197.         return $this->type;
  198.     }
  199.     public function setType(?string $type): self
  200.     {
  201.         $this->type $type;
  202.         return $this;
  203.     }
  204.     public function getCompany(): ?string
  205.     {
  206.         return $this->company;
  207.     }
  208.     public function setCompany(?string $company): self
  209.     {
  210.         $this->company $company;
  211.         return $this;
  212.     }
  213.     public function getCredit(): ?int
  214.     {
  215.         return $this->credit;
  216.     }
  217.     public function setCredit(int $credit): self
  218.     {
  219.         $this->credit $credit;
  220.         return $this;
  221.     }
  222.     public function getCreatedAt(): ?\DateTimeInterface
  223.     {
  224.         return $this->created_at;
  225.     }
  226.     public function setCreatedAt(\DateTimeInterface $created_at): self
  227.     {
  228.         $this->created_at $created_at;
  229.         return $this;
  230.     }
  231.     public function getUpdatedAt(): ?\DateTimeInterface
  232.     {
  233.         return $this->updated_at;
  234.     }
  235.     public function setUpdatedAt(\DateTimeInterface $updated_at): self
  236.     {
  237.         $this->updated_at $updated_at;
  238.         return $this;
  239.     }
  240.     /**
  241.      * @return Collection|Campaign[]
  242.      */
  243.     public function getCampaigns(): Collection
  244.     {
  245.         return $this->campaigns;
  246.     }
  247.     public function addCampaign(Campaign $campaign): self
  248.     {
  249.         if (!$this->campaigns->contains($campaign)) {
  250.             $this->campaigns[] = $campaign;
  251.             $campaign->setCreatedBy($this);
  252.         }
  253.         return $this;
  254.     }
  255.     public function removeCampaign(Campaign $campaign): self
  256.     {
  257.         if ($this->campaigns->removeElement($campaign)) {
  258.             // set the owning side to null (unless already changed)
  259.             if ($campaign->getCreatedBy() === $this) {
  260.                 $campaign->setCreatedBy(null);
  261.             }
  262.         }
  263.         return $this;
  264.     }
  265.     public function getBalance(): ?int
  266.     {
  267.         return $this->balance;
  268.     }
  269.     public function setBalance(int $balance): self
  270.     {
  271.         $this->balance $balance;
  272.         return $this;
  273.     }
  274.     /**
  275.      * @return Collection|Media[]
  276.      */
  277.     public function getMedia(): Collection
  278.     {
  279.         return $this->media;
  280.     }
  281.     public function addMedium(Media $medium): self
  282.     {
  283.         if (!$this->media->contains($medium)) {
  284.             $this->media[] = $medium;
  285.             $medium->setCreatedBy($this);
  286.         }
  287.         return $this;
  288.     }
  289.     public function removeMedium(Media $medium): self
  290.     {
  291.         if ($this->media->removeElement($medium)) {
  292.             // set the owning side to null (unless already changed)
  293.             if ($medium->getCreatedBy() === $this) {
  294.                 $medium->setCreatedBy(null);
  295.             }
  296.         }
  297.         return $this;
  298.     }
  299.     /**
  300.      * @return Collection|Notif[]
  301.      */
  302.     public function getNotifs(): Collection
  303.     {
  304.         return $this->notifs;
  305.     }
  306.     public function addNotif(Notif $notif): self
  307.     {
  308.         if (!$this->notifs->contains($notif)) {
  309.             $this->notifs[] = $notif;
  310.             $notif->setRecepient($this);
  311.         }
  312.         return $this;
  313.     }
  314.     public function removeNotif(Notif $notif): self
  315.     {
  316.         if ($this->notifs->removeElement($notif)) {
  317.             // set the owning side to null (unless already changed)
  318.             if ($notif->getRecepient() === $this) {
  319.                 $notif->setRecepient(null);
  320.             }
  321.         }
  322.         return $this;
  323.     }
  324.     /**
  325.      * @return Collection|Transaction[]
  326.      */
  327.     public function getTransactions(): Collection
  328.     {
  329.         return $this->transactions;
  330.     }
  331.     public function addTransaction(Transaction $transaction): self
  332.     {
  333.         if (!$this->transactions->contains($transaction)) {
  334.             $this->transactions[] = $transaction;
  335.             $transaction->setLinked($this);
  336.         }
  337.         return $this;
  338.     }
  339.     public function removeTransaction(Transaction $transaction): self
  340.     {
  341.         if ($this->transactions->removeElement($transaction)) {
  342.             // set the owning side to null (unless already changed)
  343.             if ($transaction->getLinked() === $this) {
  344.                 $transaction->setLinked(null);
  345.             }
  346.         }
  347.         return $this;
  348.     }
  349.     /**
  350.      * @return string
  351.      */
  352.     public function getUserIdentifier()
  353.     {
  354.         return $this->getPhone();
  355.     }
  356.     /**
  357.      * @return Collection|Payment[]
  358.      */
  359.     public function getPayments(): Collection
  360.     {
  361.         return $this->payments;
  362.     }
  363.     public function addPayment(Payment $payment): self
  364.     {
  365.         if (!$this->payments->contains($payment)) {
  366.             $this->payments[] = $payment;
  367.             $payment->setCreatedBy($this);
  368.         }
  369.         return $this;
  370.     }
  371.     public function removePayment(Payment $payment): self
  372.     {
  373.         if ($this->payments->removeElement($payment)) {
  374.             // set the owning side to null (unless already changed)
  375.             if ($payment->getCreatedBy() === $this) {
  376.                 $payment->setCreatedBy(null);
  377.             }
  378.         }
  379.         return $this;
  380.     }
  381. }