src/Admin/Modules/Voucher/Entity/VoucherPackage.php line 20
<?phpnamespace App\Admin\Modules\Voucher\Entity;use App\Admin\Modules\Contract\Entity\ContractLeadConfig;use App\Admin\Modules\Partner\Entity\UserPartner;use App\Modules\User\Entity\User;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;use Gedmo\Mapping\Annotation as Gedmo;use Gedmo\Translatable\Translatable;/*** @ORM\Table(name="voucher_package", uniqueConstraints={@ORM\UniqueConstraint(columns={"prefix_code", "id_added_by_user"})}, indexes={@ORM\Index(columns={"name"}), @ORM\Index(columns={"voucher_type"}), @ORM\Index(columns={"deadline"}), @ORM\Index(columns={"for_sale"})})* @ORM\Entity(repositoryClass="App\Admin\Modules\Voucher\Repository\VoucherPackageRepository")* @Gedmo\TranslationEntity(class="App\Admin\Modules\Voucher\Entity\VoucherPackageTranslation")*/class VoucherPackage implements Translatable{const VOUCHER_TYPE_AMOUNT = 1;const VOUCHER_TYPE_DISCOUNT = 2;const VOUCHER_TYPE_CONTRACTS_LEAD = 3;const VOUCHER_TYPE_LIMITED_INDIVIDUAL_VOUCHERS = 4;const VOUCHER_TYPE_REUSABLE = 5;const VOUCHER_TYPE_RECOMMENDATION = 6;const QR_CODE_REDIRECT_TYPE_VOUCHER_REGISTRATION_FORM = 1;const QR_CODE_REDIRECT_TYPE_MEETING_BOOKING_CART = 2;const QR_CODE_REDIRECT_TYPE_PACKAGES = 3;const QR_CODE_REDIRECT_TYPE_CONTRACTS_LEAD = 4;/*** @var int** @ORM\Id* @ORM\Column(type="bigint", options={"unsigned"=true}))* @ORM\GeneratedValue(strategy="AUTO")*/protected $id;/*** @var string** @ORM\Column(name="name", type="string", length=255, nullable=false, options={"collation"="utf8_unicode_ci"})*/private $name;/*** @var string** @ORM\Column(name="prefix_code", type="string", length=10, nullable=false, options={"collation"="utf8_unicode_ci"})*/private $prefixCode;/*** @var int** @ORM\Column(name="voucher_type", type="smallint", nullable=false)*/private $voucherType;/*** @var int** @ORM\Column(name="am_value", type="integer", nullable=true)*/private $amValue;/*** @var float** @ORM\Column(name="vat_rate", type="float", nullable=true)*/private $vatRate;/*** @var string** @ORM\Column(name="handling_fee", type="decimal", precision=14, scale=2, nullable=true)*/private $handlingFee;/*** @var string** @ORM\Column(name="currency_code", type="string", length=3, nullable=true)*/private $currencyCode;/*** @var \DateTime** @ORM\Column(name="deadline", type="date", nullable=true)*/private $deadline;/*** @var string** @ORM\Column(name="name_in_cart", type="string", length=255, nullable=true)* @Gedmo\Translatable*/private $nameInCart;/*** @var string** @ORM\Column(name="description_in_cart", type="string", length=4096, nullable=true)* @Gedmo\Translatable*/private $descriptionInCart;/*** @var string** @ORM\Column(name="description", type="text", length=65535, nullable=true)* @Gedmo\Translatable*/private $description;/*** @var int** @ORM\Column(name="template_name", type="string", length=255, nullable=true)*/private $templateName;/*** @var int** @ORM\Column(name="qr_code_redirect_type", type="smallint", nullable=true)*/private $qrCodeRedirectType;/*** @var bool** @ORM\Column(name="for_sale", type="boolean", nullable=true)*/private $forSale;/*** @var string** @ORM\Column(name="sale_image", type="string", length=255, nullable=true)*/private $saleImage;/*** @var bool** @ORM\Column(name="refinement", type="boolean", nullable=true)*/private $refinement;/*** @var \App\Admin\Modules\Contract\Entity\ContractLeadConfig** @ORM\ManyToOne(targetEntity="App\Admin\Modules\Contract\Entity\ContractLeadConfig")* @ORM\JoinColumns({* @ORM\JoinColumn(name="id_contract_lead_config", referencedColumnName="id", nullable=true, onDelete="SET NULL")* })*/private $contractLeadConfig;/*** @var int** @ORM\Column(name="individual_vouchers_limit", type="integer", nullable=true)*/private $individualVouchersLimit;/*** @var int** @ORM\Column(name="reusable_voucher_usage_limit", type="integer", nullable=true)*/private $reusableVoucherUsageLimit;/*** @var int** @ORM\Column(name="recommendation_voucher_recommendations_number", type="integer", nullable=true)*/private $recommendationVoucherRecommendationsNumber;/*** @var bool** @ORM\Column(name="recommendation_voucher_all_recommendations_required", type="boolean", nullable=true)*/private $recommendationVoucherAllRecommendationsRequired;/*** @var \App\Admin\Modules\Voucher\Entity\VoucherPackage** @ORM\ManyToOne(targetEntity="App\Admin\Modules\Voucher\Entity\VoucherPackage")* @ORM\JoinColumns({* @ORM\JoinColumn(name="id_target_package", referencedColumnName="id", nullable=true, onDelete="SET NULL")* })*/private $targetPackage;/*** @var string** @ORM\Column(name="background_image", type="string", length=255, nullable=true)*/private $backgroundImage;/*** @var string** @ORM\Column(name="front_image", type="string", length=255, nullable=true)*/private $frontImage;/*** @var string** @ORM\Column(name="back_image", type="string", length=255, nullable=true)*/private $backImage;/*** @var \App\Modules\User\Entity\User** @ORM\ManyToOne(targetEntity="App\Modules\User\Entity\User")* @ORM\JoinColumns({* @ORM\JoinColumn(name="id_added_by_user", referencedColumnName="id", nullable=false, onDelete="CASCADE")* })*/private $addedByUser;/*** @var \App\Admin\Modules\Voucher\Entity\VoucherPackageVoucher** @ORM\OneToMany(targetEntity="App\Admin\Modules\Voucher\Entity\VoucherPackageVoucher", mappedBy="package", cascade={"persist"}, orphanRemoval=true)*/private $vouchers;/*** @var \App\Admin\Modules\Partner\Entity\UserPartner** @ORM\ManyToMany(targetEntity="App\Admin\Modules\Partner\Entity\UserPartner", mappedBy="voucherPackages")**/private $partners;public function __construct(){$this->vouchers = new ArrayCollection();$this->partners = new ArrayCollection();}public function __toString(){return $this->name;}public function getId(): ?string{return $this->id;}public function getNameWithValue(){$name = $this->name;switch($this->voucherType){case self::VOUCHER_TYPE_AMOUNT:$name .= ' (' . $this->amValue . ' ' . $this->currencyCode . ')';break;case self::VOUCHER_TYPE_DISCOUNT:$name .= ' (' . $this->amValue . '%)';break;}return $name;}public function getName(): ?string{return $this->name;}public function setName(string $name): self{$this->name = $name;return $this;}public function getPrefixCode(): ?string{return $this->prefixCode;}public function setPrefixCode(string $prefixCode): self{$this->prefixCode = $prefixCode;return $this;}public function getDeadline(): ?\DateTimeInterface{return $this->deadline;}public function setDeadline(?\DateTimeInterface $deadline): self{$this->deadline = $deadline;return $this;}public function getDescription(): ?string{return $this->description;}public function setDescription(?string $description): self{$this->description = $description;return $this;}/*** @return Collection<int, VoucherPackageVoucher>*/public function getVouchers(): Collection{return $this->vouchers;}public function addVoucher(VoucherPackageVoucher $voucher): self{if (!$this->vouchers->contains($voucher)) {$this->vouchers->add($voucher);$voucher->setPackage($this);}return $this;}public function removeVoucher(VoucherPackageVoucher $voucher): self{if ($this->vouchers->removeElement($voucher)) {// set the owning side to null (unless already changed)if ($voucher->getPackage() === $this) {$voucher->setPackage(null);}}return $this;}public function getAmValue(): ?int{return $this->amValue;}public function setAmValue(?int $amValue): self{$this->amValue = $amValue;return $this;}/*** @return Collection<int, UserPartner>*/public function getPartners(): Collection{return $this->partners;}public function addPartner(UserPartner $partner): self{if (!$this->partners->contains($partner)) {$this->partners->add($partner);$partner->addVoucherPackage($this);}return $this;}public function removePartner(UserPartner $partner): self{if ($this->partners->removeElement($partner)) {$partner->removeVoucherPackage($this);}return $this;}public function getAddedByUser(): ?User{return $this->addedByUser;}public function setAddedByUser(?User $addedByUser): self{$this->addedByUser = $addedByUser;return $this;}public function getVoucherType(): ?int{return $this->voucherType;}public function setVoucherType(int $voucherType): self{$this->voucherType = $voucherType;return $this;}public function getCurrencyCode(): ?string{return $this->currencyCode;}public function setCurrencyCode(?string $currencyCode): self{$this->currencyCode = $currencyCode;return $this;}public function getTemplateName(): ?string{return $this->templateName;}public function setTemplateName(?string $templateName): self{$this->templateName = $templateName;return $this;}public function getForSale(): ?bool{return $this->forSale;}public function setForSale(?bool $forSale): self{$this->forSale = $forSale;return $this;}public function getNameInCart(): ?string{return $this->nameInCart;}public function setNameInCart(?string $nameInCart): self{$this->nameInCart = $nameInCart;return $this;}public function getDescriptionInCart(): ?string{return $this->descriptionInCart;}public function setDescriptionInCart(?string $descriptionInCart): self{$this->descriptionInCart = $descriptionInCart;return $this;}public function isForSale(): ?bool{return $this->forSale;}public function getSaleImage(): ?string{return $this->saleImage;}public function setSaleImage(?string $saleImage): self{$this->saleImage = $saleImage;return $this;}public function getQRCodeRedirectType(): ?int{return $this->qrCodeRedirectType;}public function setQRCodeRedirectType(?int $qrCodeRedirectType): self{$this->qrCodeRedirectType = $qrCodeRedirectType;return $this;}public function getVatRate(): ?float{return $this->vatRate;}public function setVatRate(?float $vatRate): self{$this->vatRate = $vatRate;return $this;}public function getHandlingFee(): ?string{return $this->handlingFee;}public function setHandlingFee(?string $handlingFee): self{$this->handlingFee = $handlingFee;return $this;}public function getBackgroundImage(): ?string{return $this->backgroundImage;}public function setBackgroundImage(?string $backgroundImage): self{$this->backgroundImage = $backgroundImage;return $this;}public function getIndividualVouchersLimit(): ?int{return $this->individualVouchersLimit;}public function setIndividualVouchersLimit(?int $individualVouchersLimit): self{$this->individualVouchersLimit = $individualVouchersLimit;return $this;}public function getFrontImage(): ?string{return $this->frontImage;}public function setFrontImage(?string $frontImage): self{$this->frontImage = $frontImage;return $this;}public function getBackImage(): ?string{return $this->backImage;}public function setBackImage(?string $backImage): self{$this->backImage = $backImage;return $this;}public function getRefinement(): ?bool{return $this->refinement;}public function setRefinement(?bool $refinement): self{$this->refinement = $refinement;return $this;}public function getReusableVoucherUsageLimit(): ?int{return $this->reusableVoucherUsageLimit;}public function setReusableVoucherUsageLimit(?int $reusableVoucherUsageLimit): self{$this->reusableVoucherUsageLimit = $reusableVoucherUsageLimit;return $this;}public function getContractLeadConfig(): ?ContractLeadConfig{return $this->contractLeadConfig;}public function setContractLeadConfig(?ContractLeadConfig $contractLeadConfig): self{$this->contractLeadConfig = $contractLeadConfig;return $this;}public function getTargetPackage(): ?self{return $this->targetPackage;}public function setTargetPackage(?self $targetPackage): self{$this->targetPackage = $targetPackage;return $this;}public function getRecommendationVoucherRecommendationsNumber(): ?int{return $this->recommendationVoucherRecommendationsNumber;}public function setRecommendationVoucherRecommendationsNumber(?int $recommendationVoucherRecommendationsNumber): self{$this->recommendationVoucherRecommendationsNumber = $recommendationVoucherRecommendationsNumber;return $this;}public function getRecommendationVoucherAllRecommendationsRequired(): ?bool{return $this->recommendationVoucherAllRecommendationsRequired;}public function setRecommendationVoucherAllRecommendationsRequired(?bool $recommendationVoucherAllRecommendationsRequired): self{$this->recommendationVoucherAllRecommendationsRequired = $recommendationVoucherAllRecommendationsRequired;return $this;}}