src/Admin/Modules/Partner/Entity/UserPartner.php line 16

  1. <?php
  2. namespace App\Admin\Modules\Partner\Entity;
  3. use App\Admin\Modules\Voucher\Entity\VoucherPackage;
  4. use App\Modules\User\Entity\User;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\DBAL\Types\Types;
  8. use Doctrine\ORM\Mapping as ORM;
  9. /**
  10.  * @ORM\Table(name="user_partner", uniqueConstraints={@ORM\UniqueConstraint(columns={"id_added_by_user", "id_user"})}, indexes={@ORM\Index(columns={"name"})})
  11.  * @ORM\Entity
  12.  */
  13. class UserPartner
  14. {
  15.     const TYPE_PARTNER 1;
  16.     const TYPE_ADMIN_PARTNER 2;
  17.     
  18.     /**
  19.      * @ORM\Column(type="integer")
  20.      * @ORM\Id
  21.      * @ORM\GeneratedValue(strategy="AUTO")
  22.      */
  23.     private $id;
  24.     /**
  25.      * @var \App\Modules\User\Entity\User
  26.      *
  27.      * @ORM\ManyToOne(targetEntity="App\Modules\User\Entity\User", cascade={"persist"}, inversedBy="partner")
  28.      * @ORM\JoinColumns({
  29.      *   @ORM\JoinColumn(name="id_user", referencedColumnName="id", nullable=false, onDelete="CASCADE")
  30.      * })
  31.      */
  32.     private $user;
  33.     
  34.     /**
  35.      * @var string
  36.      *
  37.      * @ORM\Column(name="name", type="string", length=255, nullable=false, options={"collation"="utf8_unicode_ci"})
  38.      */
  39.     private $name;
  40.     
  41.     /**
  42.      * @var float
  43.      *
  44.      * @ORM\Column(name="commission", type="float", nullable=true)
  45.      */
  46.     private $commission;
  47.     
  48.     /**
  49.      * @var bool
  50.      *
  51.      * @ORM\Column(name="can_trade", type="boolean", nullable=false)
  52.      */
  53.     private $canTrade;
  54.     
  55.     /**
  56.      * @var int
  57.      *
  58.      * @ORM\Column(name="type", type="smallint", nullable=false)
  59.      */
  60.     private $type;
  61.     
  62.     /**
  63.      * @var \App\Modules\User\Entity\User
  64.      *
  65.      * @ORM\ManyToOne(targetEntity="App\Modules\User\Entity\User")
  66.      * @ORM\JoinColumns({
  67.      *   @ORM\JoinColumn(name="id_added_by_user", referencedColumnName="id", nullable=false, onDelete="CASCADE")
  68.      * })
  69.      */
  70.     private $addedByUser;
  71.     
  72.     /**
  73.      * @var \App\Admin\Modules\Voucher\Entity\VoucherPackage
  74.      *
  75.      * @ORM\ManyToMany(targetEntity="App\Admin\Modules\Voucher\Entity\VoucherPackage", inversedBy="partners")
  76.      * @ORM\JoinTable(name="partner_voucher_package",
  77.      *      joinColumns={@ORM\JoinColumn(name="id_user_partner", referencedColumnName="id", onDelete="CASCADE")},
  78.      *      inverseJoinColumns={@ORM\JoinColumn(name="id_voucher_package", referencedColumnName="id", onDelete="CASCADE")}
  79.      *    )
  80.      * @ORM\OrderBy({"name"="ASC"})
  81.      **/
  82.     private $voucherPackages;
  83.     public function __construct()
  84.     {
  85.         $this->voucherPackages = new ArrayCollection();
  86.     }
  87.     public function getId(): ?int
  88.     {
  89.         return $this->id;
  90.     }
  91.     public function getName(): ?string
  92.     {
  93.         return $this->name;
  94.     }
  95.     public function setName(string $name): self
  96.     {
  97.         $this->name $name;
  98.         return $this;
  99.     }
  100.     public function getCommission(): ?float
  101.     {
  102.         return $this->commission;
  103.     }
  104.     public function setCommission(?float $commission): self
  105.     {
  106.         $this->commission $commission;
  107.         return $this;
  108.     }
  109.     public function getUser(): ?User
  110.     {
  111.         return $this->user;
  112.     }
  113.     public function setUser(?User $user): self
  114.     {
  115.         $this->user $user;
  116.         return $this;
  117.     }
  118.     /**
  119.      * @return Collection<int, VoucherPackage>
  120.      */
  121.     public function getVoucherPackages(): Collection
  122.     {
  123.         return $this->voucherPackages;
  124.     }
  125.     public function addVoucherPackage(VoucherPackage $voucherPackage): self
  126.     {
  127.         if (!$this->voucherPackages->contains($voucherPackage)) {
  128.             $this->voucherPackages->add($voucherPackage);
  129.         }
  130.         return $this;
  131.     }
  132.     public function removeVoucherPackage(VoucherPackage $voucherPackage): self
  133.     {
  134.         $this->voucherPackages->removeElement($voucherPackage);
  135.         return $this;
  136.     }
  137.     public function getAddedByUser(): ?User
  138.     {
  139.         return $this->addedByUser;
  140.     }
  141.     public function setAddedByUser(?User $addedByUser): self
  142.     {
  143.         $this->addedByUser $addedByUser;
  144.         return $this;
  145.     }
  146.     public function getType(): ?int
  147.     {
  148.         return $this->type;
  149.     }
  150.     public function setType(?int $type): self
  151.     {
  152.         $this->type $type;
  153.         return $this;
  154.     }
  155.     public function getCanTrade(): ?bool
  156.     {
  157.         return $this->canTrade;
  158.     }
  159.     public function setCanTrade(bool $canTrade): self
  160.     {
  161.         $this->canTrade $canTrade;
  162.         return $this;
  163.     }    
  164. }