src/CasinoBundle/Entity/PaymentMethod.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\CasinoBundle\Entity;
  3. use App\CmsBundle\Entity\PositionTrait;
  4. use App\CmsBundle\Entity\PublishedTrait;
  5. use App\CmsBundle\Entity\SlugTrait;
  6. use App\CmsBundle\Entity\TimeStampedTrait;
  7. use Doctrine\Common\Collections\ArrayCollection;
  8. use Doctrine\Common\Collections\Collection;
  9. use Doctrine\ORM\Mapping as ORM;
  10. /**
  11.  * PaymentMethod
  12.  *
  13.  * @ORM\Table(
  14.  *     name="payment_method",
  15.  *     uniqueConstraints={
  16.  *          @ORM\UniqueConstraint(name="payment_name_uindex", columns={"name"}),
  17.  *          @ORM\UniqueConstraint(name="payment_slug_uindex", columns={"slug"})
  18.  *     },
  19.  *     indexes={
  20.  *          @ORM\Index(name="payment_published_index", columns={"published"}),
  21.  *          @ORM\Index(name="payment_position_index", columns={"position"})
  22.  *     }
  23.  * )
  24.  * @ORM\Entity(repositoryClass="App\CasinoBundle\Repository\PaymentMethodRepository")
  25.  * @ORM\Cache(usage="NONSTRICT_READ_WRITE", region="one_day")
  26.  * @ORM\HasLifecycleCallbacks()
  27.  */
  28. class PaymentMethod
  29. {
  30.     use SlugTrait;
  31.     use PositionTrait;
  32.     use AliasTrait;
  33.     use LogoTrait;
  34.     use PublishedTrait;
  35.     use TimeStampedTrait;
  36.     /**
  37.      * @var int
  38.      *
  39.      * @ORM\Column(name="id", type="integer", nullable=false)
  40.      * @ORM\Id
  41.      * @ORM\GeneratedValue(strategy="IDENTITY")
  42.      */
  43.     private $id;
  44.     /**
  45.      * @var string
  46.      *
  47.      * @ORM\Column(name="name", type="string", length=255, nullable=false)
  48.      */
  49.     private $name;
  50.     /**
  51.      * @ORM\ManyToMany(targetEntity="App\CasinoBundle\Entity\Casino", mappedBy="depositMethods", cascade={"persist"}, fetch="EXTRA_LAZY")
  52.      */
  53.     private $casinosWithDepositMethods;
  54.     /**
  55.      * @ORM\ManyToMany(targetEntity="App\CasinoBundle\Entity\Casino", mappedBy="withdrawalMethods", cascade={"persist"}, fetch="EXTRA_LAZY")
  56.      */
  57.     private $casinosWithWithdrawalMethods;
  58.     /**
  59.      * @ORM\OneToMany(targetEntity="App\CasinoBundle\Entity\Alias", mappedBy="paymentMethod", cascade={"persist", "remove"}, orphanRemoval=true)
  60.      */
  61.     private Collection $aliases;
  62.     public function __construct()
  63.     {
  64.         $this->casinosWithDepositMethods = new ArrayCollection();
  65.         $this->casinosWithWithdrawalMethods = new ArrayCollection();
  66.         $this->aliases = new ArrayCollection();
  67.     }
  68.     public function __toString(): string
  69.     {
  70.         return $this->name;
  71.     }
  72.     /**
  73.      * @return int
  74.      */
  75.     public function getId(): int
  76.     {
  77.         return $this->id;
  78.     }
  79.     /**
  80.      * @param int $id
  81.      */
  82.     public function setId(int $id): void
  83.     {
  84.         $this->id $id;
  85.     }
  86.     /**
  87.      * @return string
  88.      */
  89.     public function getName(): string
  90.     {
  91.         return $this->name;
  92.     }
  93.     /**
  94.      * @param string $name
  95.      */
  96.     public function setName(string $name): self
  97.     {
  98.         $this->name $name;
  99.         return $this;
  100.     }
  101.     /**
  102.      * @return Collection|Casino[]
  103.      */
  104.     public function getCasinosWithDepositMethods(): Collection
  105.     {
  106.         return $this->casinosWithDepositMethods;
  107.     }
  108.     public function addCasinoWithDepositMethod(Casino $casino): self
  109.     {
  110.         if (!$this->casinosWithDepositMethods->contains($casino)) {
  111.             $this->casinosWithDepositMethods[] = $casino;
  112.             $casino->addDepositMethod($this);
  113.         }
  114.         return $this;
  115.     }
  116.     public function removeCasinoWithDepositMethod(Casino $casino): self
  117.     {
  118.         if ($this->casinosWithDepositMethods->contains($casino)) {
  119.             $this->casinosWithDepositMethods->removeElement($casino);
  120.             $casino->removeDepositMethod($this);
  121.         }
  122.         return $this;
  123.     }
  124.     /**
  125.      * @return Collection|Casino[]
  126.      */
  127.     public function getCasinosWithWithdrawalMethods(): Collection
  128.     {
  129.         return $this->casinosWithWithdrawalMethods;
  130.     }
  131.     public function addCasinoWithWithdrawalMethod(Casino $casino): self
  132.     {
  133.         if (!$this->casinosWithWithdrawalMethods->contains($casino)) {
  134.             $this->casinosWithWithdrawalMethods[] = $casino;
  135.             $casino->addWithdrawalMethod($this);
  136.         }
  137.         return $this;
  138.     }
  139.     public function removeCasinoWithWithdrawalMethod(Casino $casino): self
  140.     {
  141.         if ($this->casinosWithWithdrawalMethods->contains($casino)) {
  142.             $this->casinosWithWithdrawalMethods->removeElement($casino);
  143.             $casino->removeWithdrawalMethod($this);
  144.         }
  145.         return $this;
  146.     }
  147.     public function countCasinoWithWithdrawalMethod(): int
  148.     {
  149.         return ($this->casinosWithWithdrawalMethods)
  150.             ? $this->casinosWithWithdrawalMethods->count()
  151.             : 0;
  152.     }
  153.     public function countCasinosWithDepositMethods(): int
  154.     {
  155.         return ($this->casinosWithDepositMethods)
  156.             ? $this->casinosWithDepositMethods->count()
  157.             : 0;
  158.     }
  159. }