src/Admin/Modules/AmountVoucherSettings/Entity/AmountVoucherSettings.php line 19

  1. <?php
  2. namespace App\Admin\Modules\AmountVoucherSettings\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\DBAL\Types\Types;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Gedmo\Mapping\Annotation as Gedmo;
  8. use Gedmo\Translatable\Translatable;
  9. use App\Modules\User\Entity\User;
  10. use App\Admin\Modules\Voucher\Entity\VoucherPackage;
  11. /**
  12.  * @ORM\Table(name="amount_voucher_settings", uniqueConstraints={@ORM\UniqueConstraint(columns={"id_admin_user"})})
  13.  * @ORM\Entity
  14.  * @Gedmo\TranslationEntity(class="App\Admin\Modules\AmountVoucherSettings\Entity\AmountVoucherSettingsTranslation")
  15.  */
  16. class AmountVoucherSettings implements Translatable
  17. {
  18.     /**
  19.      * @var int
  20.      *
  21.      * @ORM\Column(type="bigint", options={"unsigned"=true}))
  22.      * @ORM\Id
  23.      * @ORM\GeneratedValue(strategy="AUTO")
  24.      */
  25.     protected $id;
  26.     /**
  27.      * @var \App\Modules\User\Entity\User
  28.      *
  29.      * @ORM\ManyToOne(targetEntity="App\Modules\User\Entity\User")
  30.      * @ORM\JoinColumns({
  31.      *   @ORM\JoinColumn(name="id_admin_user", referencedColumnName="id", nullable=false, onDelete="CASCADE")
  32.      * })
  33.      */
  34.     private $adminUser;
  35.     
  36.     /**
  37.      * @var \App\Admin\Modules\Voucher\Entity\VoucherPackage
  38.      *
  39.      * @ORM\ManyToOne(targetEntity="App\Admin\Modules\Voucher\Entity\VoucherPackage")
  40.      * @ORM\JoinColumns({
  41.      *   @ORM\JoinColumn(name="id_voucher_package", referencedColumnName="id", nullable=true, onDelete="SET NULL")
  42.      * })
  43.      */
  44.     private $package;    
  45.     
  46.     /**
  47.      * @var string
  48.      *
  49.      * @ORM\Column(name="description", type="text", length=65535, nullable=false)
  50.      * @Gedmo\Translatable
  51.      */
  52.     private $description;
  53.     /**
  54.      * @var string
  55.      *
  56.      * @ORM\Column(name="delivery", type="text", length=65535, nullable=false)
  57.      * @Gedmo\Translatable
  58.      */
  59.     private $delivery;
  60.     /**
  61.      * @var string
  62.      *
  63.      * @ORM\Column(name="terms", type="text", length=65535, nullable=false)
  64.      * @Gedmo\Translatable
  65.      */
  66.     private $terms;
  67.     
  68.     /**
  69.      * @var \App\Admin\Modules\AmountVoucherSettings\Entity\AmountVoucherSettingsAmount
  70.      *
  71.      * @ORM\OneToMany(targetEntity="App\Admin\Modules\AmountVoucherSettings\Entity\AmountVoucherSettingsAmount", mappedBy="settings", cascade={"persist"}, orphanRemoval=true)
  72.      * @ORM\OrderBy({"amount"="ASC"})
  73.      */
  74.     private $amounts;
  75.     public function __construct()
  76.     {
  77.         $this->amounts = new ArrayCollection();
  78.     }
  79.     public function getId(): ?string
  80.     {
  81.         return $this->id;
  82.     }
  83.     public function getDescription(): ?string
  84.     {
  85.         return $this->description;
  86.     }
  87.     public function setDescription(string $description): self
  88.     {
  89.         $this->description $description;
  90.         return $this;
  91.     }
  92.     public function getDelivery(): ?string
  93.     {
  94.         return $this->delivery;
  95.     }
  96.     public function setDelivery(string $delivery): self
  97.     {
  98.         $this->delivery $delivery;
  99.         return $this;
  100.     }
  101.     public function getTerms(): ?string
  102.     {
  103.         return $this->terms;
  104.     }
  105.     public function setTerms(string $terms): self
  106.     {
  107.         $this->terms $terms;
  108.         return $this;
  109.     }
  110.     public function getAdminUser(): ?User
  111.     {
  112.         return $this->adminUser;
  113.     }
  114.     public function setAdminUser(?User $adminUser): self
  115.     {
  116.         $this->adminUser $adminUser;
  117.         return $this;
  118.     }
  119.     public function getPackage(): ?VoucherPackage
  120.     {
  121.         return $this->package;
  122.     }
  123.     public function setPackage(?VoucherPackage $package): self
  124.     {
  125.         $this->package $package;
  126.         return $this;
  127.     }
  128.     /**
  129.      * @return Collection<int, AmountVoucherSettingsAmount>
  130.      */
  131.     public function getAmounts(): Collection
  132.     {
  133.         return $this->amounts;
  134.     }
  135.     public function addAmount(AmountVoucherSettingsAmount $amount): self
  136.     {
  137.         if (!$this->amounts->contains($amount)) {
  138.             $this->amounts->add($amount);
  139.             $amount->setSettings($this);
  140.         }
  141.         return $this;
  142.     }
  143.     public function removeAmount(AmountVoucherSettingsAmount $amount): self
  144.     {
  145.         if ($this->amounts->removeElement($amount)) {
  146.             // set the owning side to null (unless already changed)
  147.             if ($amount->getSettings() === $this) {
  148.                 $amount->setSettings(null);
  149.             }
  150.         }
  151.         return $this;
  152.     }
  153. }