src/Entity/Payment/PaymentMethod.php line 19

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity\Payment;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Sylius\Component\Core\Model\PaymentMethod as BasePaymentMethod;
  6. use Sylius\Component\Payment\Model\PaymentMethodTranslationInterface;
  7. use Doctrine\Common\Collections\ArrayCollection;
  8. use Doctrine\Common\Collections\Collection;
  9. use Sylius\Component\Core\Model\ImagesAwareInterface;
  10. use Sylius\Component\Core\Model\ImageInterface;
  11. /**
  12.  * @ORM\Entity
  13.  * @ORM\Table(name="sylius_payment_method")
  14.  */
  15. class PaymentMethod extends BasePaymentMethod implements ImagesAwareInterface
  16. {
  17.     /**
  18.      * @var string
  19.      */
  20.     protected $codeGenerix;
  21.     /**
  22.      * @var string
  23.      */
  24.     protected $codePanda;
  25.     /**
  26.      * @var boolean
  27.      */
  28.     protected $enabledOnlyForAdmin;
  29.     /**
  30.      * @ORM\OneToMany(targetEntity=PaymentMethodImage::class, mappedBy="owner", orphanRemoval=true, cascade={"all"})
  31.      */
  32.     protected $images;
  33.     public function __construct()
  34.     {
  35.         parent::__construct();
  36.         $this->images = new ArrayCollection();
  37.     }
  38.     public function getCodeGenerix()
  39.     {
  40.         return $this->codeGenerix;
  41.     }
  42.     public function setCodeGenerix(?string $codeGenerix): void
  43.     {
  44.         $this->codeGenerix $codeGenerix;
  45.     }
  46.     public function getCodePanda()
  47.     {
  48.         return $this->codePanda;
  49.     }
  50.     public function setCodePanda(?string $codePanda): void
  51.     {
  52.         $this->codePanda $codePanda;
  53.     }
  54.     public function getEnabledOnlyForAdmin()
  55.     {
  56.         return $this->enabledOnlyForAdmin;
  57.     }
  58.     public function setEnabledOnlyForAdmin(?bool $enabledOnlyForAdmin): void
  59.     {
  60.         $this->enabledOnlyForAdmin $enabledOnlyForAdmin;
  61.     } 
  62.     protected function createTranslation(): PaymentMethodTranslationInterface
  63.     {
  64.         return new PaymentMethodTranslation();
  65.     }
  66.     /**
  67.      * {@inheritdoc}
  68.      */
  69.     public function getImages(): Collection
  70.     {
  71.         return $this->images;
  72.     }
  73.     /**
  74.      * {@inheritdoc}
  75.      */
  76.     public function getImagesByType(string $type): Collection
  77.     {
  78.         return $this->images->filter(function (ImageInterface $image) use ($type) {
  79.             return $type === $image->getType();
  80.         });
  81.     }
  82.     /**
  83.      * {@inheritdoc}
  84.      */
  85.     public function hasImages(): bool
  86.     {
  87.         return !$this->images->isEmpty();
  88.     }
  89.     /**
  90.      * {@inheritdoc}
  91.      */
  92.     public function hasImage(ImageInterface $image): bool
  93.     {
  94.         return $this->images->contains($image);
  95.     }
  96.     /**
  97.      * {@inheritdoc}
  98.      */
  99.     public function addImage(ImageInterface $image): void
  100.     {
  101.         $image->setOwner($this);
  102.         $this->images->add($image);
  103.     }
  104.     /**
  105.      * {@inheritdoc}
  106.      */
  107.     public function removeImage(ImageInterface $image): void
  108.     {
  109.         if ($this->hasImage($image)) {
  110.             $image->setOwner(null);
  111.             $this->images->removeElement($image);
  112.         }
  113.     }
  114. }