src/Entity/System/PaymentMethod.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity\System;
  3. use App\Application\DTO\ControlPanel\Api\Payment\PaymentMethodAttributes;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\ORM\Mapping as ORM;
  6. /**
  7.  * PaymentMethod
  8.  *
  9.  * @ORM\Table(name="ps_payment_method")
  10.  *
  11.  * @ORM\Entity(repositoryClass="App\Repository\System\PaymentMethodRepository")
  12.  */
  13. class PaymentMethod
  14. {
  15.     public const PAYMENT_METHOD_MONEYBOX 'monedero';
  16.     public const PAYMENT_METHOD_BANKWIRE 'transferencia';
  17.     public const PAYMENT_METHOD_PAYPAL 'paypal';
  18.     public const PAYMENT_METHOD_CREDIT_CARD 'credit-card';
  19.     public const PAYMENT_METHOD_PAYCOMET 'paycomet';
  20.     public const PAYMENT_METHOD_PAYPAL_REVIEW 'paypal-revisando';
  21.     public const PAYMENT_METHOD_CREDIT_SERVICE 'credit_service';
  22.     public const PAYMENT_METHOD_CREDIT 'credito';
  23.     public const PAYMENT_CASH_ON_DELIVERY 'contrarrembolso';
  24.     public const PAYMENT_FLEXIBLE_PAYMENT 'pago_flexible';
  25.     public const PAYMENT_METHOD_BRAINTREE 'Braintree';
  26.     public const PAYMENT_METHOD_CONFIRMING 'confirming';
  27.     public const PAYMENT_METHOD_SOFORT 'sofort';
  28.     public const PAYMENT_METHOD_ADYEN 'adyen';
  29.     public const PAYMENT_METHOD_STRIPE 'stripe';
  30.     public const CASH_ON_DELIVERY_METHOD_ID 1;
  31.     public const PAYPAL_PAYMENT_METHOD_ID 2;
  32.     public const FLEXIBLE_PAYMENT_METHOD_ID 3;
  33.     public const MONEYBOX_PAYMENT_METHOD_ID 4;
  34.     public const TRANSFER_PAYMENT_METHOD_ID 5;
  35.     public const BRAINTREE_METHOD_ID 6;
  36.     public const CREDIT_PAYMENT_METHOD_ID 7;
  37.     public const CONFIRMING_PAYMENT_METHOD_ID 8;
  38.     public const SOFORT_PAYMENT_METHOD_ID 9;
  39.     public const ADYEN_AMERICAN_EXPRESS_PAYMENT_METHOD_ID 10;
  40.     public const ADYEN_IDEAL_PAYMENT_METHOD_ID 11;
  41.     public const ADYEN_MASTERCARD_PAYMENT_METHOD_ID 12;
  42.     public const ADYEN_VISA_PAYMENT_METHOD_ID 13;
  43.     public const PAYPAL_CREDIT_CARD_PAYMENT_METHOD_ID 14;
  44.     public const ADYEN_BANK_TRANSFER_PAYMENT_METHOD_ID 15;
  45.     public const ADYEN_BANKCONTACT_PAYMENT_METHOD_ID 16;
  46.     public const ADYEN_CARTE_BANCAIRE_PAYMENT_METHOD_ID 17;
  47.     public const ADYEN_ELECTRONIC_PAYMENT_METHOD_ID 18;
  48.     public const ADYEN_MBWAY_PAYMENT_METHOD_ID 19;
  49.     public const ADYEN_TRUSTLY_PAYMENT_METHOD_ID 20;
  50.     public const ADYEN_ONLINE_BANKING_PAYMENT_METHOD_ID 21;
  51.     public const ADYEN_BUYNOW_PAYLATER_PAYMENT_METHOD_ID 22;
  52.     public const ADYEN_GOOGLE_PAY_PAYMENT_METHOD_ID 23;
  53.     public const ADYEN_FINISH_EBANKING_PAYMENT_METHOD_ID 24;
  54.     public const STRIPE_CARD_PAYMENT_METHOD_ID 25;
  55.     public const STRIPE_GOOGLE_PAY_PAYMENT_METHOD_ID 26;
  56.     public const STRIPE_APPLE_PAY_PAYMENT_METHOD_ID 27;
  57.     public const STRIPE_LINK_PAYMENT_METHOD_ID 28;
  58.     public const STRIPE_REVOLUT_PAY_PAYMENT_METHOD_ID 29;
  59.     public const STRIPE_BANCONTACT_PAYMENT_METHOD_ID 30;
  60.     public const STRIPE_CARTES_BANCAIRES_PAYMENT_METHOD_ID 31;
  61.     public const STRIPE_KLARNA_PAYMENT_METHOD_ID 32;
  62.     public const STRIPE_SEPA_DIRECT_DEBIT_PAYMENT_METHOD_ID 33;
  63.     public const STRIPE_IDEAL_PAYMENT_METHOD_ID 34;
  64.     public const STRIPE_PAYPAL_PAYMENT_METHOD_ID 35;
  65.     // STRIPE
  66.     public const STRIPE_REVOLUT_PAY_SLUG 'revolut_pay';
  67.     public const STRIPE_BANCONTACT_SLUG 'bancontact';
  68.     public const STRIPE_CARTEBANCAIRE_SLUG 'cartebancaire';
  69.     public const STRIPE_KLARNA_SLUG 'klarna';
  70.     public const STRIPE_SEPA_DEBIT_SLUG 'sepa_debit';
  71.     public const STRIPE_IDEAL_SLUG 'ideal';
  72.     // Payment Method Slugs
  73.     public const PAYMENT_METHOD_SLUG_CASH_ON_DELIVERY 'contrarrembolso';
  74.     public const PAYMENT_METHOD_SLUG_PAYPAL_COMPOSED 'paypal_paypal';
  75.     public const PAYMENT_METHOD_SLUG_PAYPAL 'paypal';
  76.     public const PAYMENT_METHOD_SLUG_FLEXIBLE_PAYMENT 'pago_flexible';
  77.     public const PAYMENT_METHOD_SLUG_MONEYBOX 'monedero';
  78.     public const PAYMENT_METHOD_SLUG_MONEYBOX_COMPOSED 'monedero_wallet';
  79.     public const PAYMENT_METHOD_SLUG_BANKWIRE_COMPOSED 'transferencia_bankwire';
  80.     public const PAYMENT_METHOD_SLUG_BANKWIRE 'transferencia';
  81.     public const PAYMENT_METHOD_SLUG_BRAINTREE 'Braintree';
  82.     public const PAYMENT_METHOD_SLUG_CREDIT 'credito';
  83.     public const PAYMENT_METHOD_SLUG_CONFIRMING 'confirming';
  84.     public const PAYMENT_METHOD_SLUG_SOFORT 'sofort';
  85.     public const PAYMENT_METHOD_SLUG_ADYEN_AMEX 'adyen_amex';
  86.     public const PAYMENT_METHOD_SLUG_ADYEN_IDEAL 'adyen_ideal';
  87.     public const PAYMENT_METHOD_SLUG_ADYEN_MC 'adyen_mc';
  88.     public const PAYMENT_METHOD_SLUG_ADYEN_VISA 'adyen_visa';
  89.     public const PAYMENT_METHOD_SLUG_CREDIT_CARD 'credit-card_credit-card';
  90.     public const PAYMENT_METHOD_SLUG_ADYEN_PAYBYBANK 'adyen_paybybank';
  91.     public const PAYMENT_METHOD_SLUG_ADYEN_BCMC 'adyen_bcmc';
  92.     public const PAYMENT_METHOD_SLUG_ADYEN_CARTEBANCAIRE 'adyen_cartebancaire';
  93.     public const PAYMENT_METHOD_SLUG_ADYEN_EPS 'adyen_eps';
  94.     public const PAYMENT_METHOD_SLUG_ADYEN_MBWAY 'adyen_mbway';
  95.     public const PAYMENT_METHOD_SLUG_ADYEN_TRUSTLY 'adyen_trustly';
  96.     public const PAYMENT_METHOD_SLUG_ADYEN_ONLINE_BANKING_PL 'adyen_onlineBanking_PL';
  97.     public const PAYMENT_METHOD_SLUG_ADYEN_KLARNA_B2B 'adyen_klarna_b2b';
  98.     public const PAYMENT_METHOD_SLUG_ADYEN_GOOGLEPAY 'adyen_googlepay';
  99.     public const PAYMENT_METHOD_SLUG_ADYEN_EBANKING_FI 'adyen_ebanking_FI';
  100.     public const PAYMENT_METHOD_SLUG_STRIPE_CARD 'stripe_card';
  101.     public const PAYMENT_METHOD_SLUG_STRIPE_GOOGLE_PAY 'stripe_google_pay';
  102.     public const PAYMENT_METHOD_SLUG_STRIPE_APPLE_PAY 'stripe_apple_pay';
  103.     public const PAYMENT_METHOD_SLUG_STRIPE_LINK 'stripe_link';
  104.     public const PAYMENT_METHOD_SLUG_STRIPE_REVOLUT_PAY 'stripe_revolut_pay';
  105.     public const PAYMENT_METHOD_SLUG_STRIPE_BANCONTACT 'stripe_bancontact';
  106.     public const PAYMENT_METHOD_SLUG_STRIPE_CARTEBANCAIRE 'stripe_cartebancaire';
  107.     public const PAYMENT_METHOD_SLUG_STRIPE_KLARNA 'stripe_klarna';
  108.     public const PAYMENT_METHOD_SLUG_STRIPE_SEPA_DEBIT 'stripe_sepa_debit';
  109.     public const PAYMENT_METHOD_SLUG_STRIPE_IDEAL 'stripe_ideal';
  110.     public const PAYMENT_METHOD_SLUG_STRIPE_PAYPAL 'stripe_paypal';
  111.     public const PAYMENT_METHOD_IDS_INDEXED_BY_PAYMENT_METHOD_COMPOSED_SLUGS = [
  112.         self::PAYMENT_METHOD_SLUG_CASH_ON_DELIVERY => self::CASH_ON_DELIVERY_METHOD_ID,
  113.         self::PAYMENT_METHOD_SLUG_PAYPAL_COMPOSED => self::PAYPAL_PAYMENT_METHOD_ID,
  114.         self::PAYMENT_METHOD_SLUG_PAYPAL => self::PAYPAL_PAYMENT_METHOD_ID,
  115.         self::PAYMENT_METHOD_SLUG_FLEXIBLE_PAYMENT => self::FLEXIBLE_PAYMENT_METHOD_ID,
  116.         self::PAYMENT_METHOD_SLUG_MONEYBOX_COMPOSED => self::MONEYBOX_PAYMENT_METHOD_ID,
  117.         self::PAYMENT_METHOD_SLUG_MONEYBOX => self::MONEYBOX_PAYMENT_METHOD_ID,
  118.         self::PAYMENT_METHOD_SLUG_BANKWIRE_COMPOSED => self::TRANSFER_PAYMENT_METHOD_ID,
  119.         self::PAYMENT_METHOD_SLUG_BANKWIRE => self::TRANSFER_PAYMENT_METHOD_ID,
  120.         self::PAYMENT_METHOD_SLUG_BRAINTREE => self::BRAINTREE_METHOD_ID,
  121.         self::PAYMENT_METHOD_SLUG_CREDIT => self::CREDIT_PAYMENT_METHOD_ID,
  122.         self::PAYMENT_METHOD_SLUG_CONFIRMING => self::CONFIRMING_PAYMENT_METHOD_ID,
  123.         self::PAYMENT_METHOD_SLUG_SOFORT => self::SOFORT_PAYMENT_METHOD_ID,
  124.         self::PAYMENT_METHOD_SLUG_ADYEN_AMEX => self::ADYEN_AMERICAN_EXPRESS_PAYMENT_METHOD_ID,
  125.         self::PAYMENT_METHOD_SLUG_ADYEN_IDEAL => self::ADYEN_IDEAL_PAYMENT_METHOD_ID,
  126.         self::PAYMENT_METHOD_SLUG_ADYEN_MC => self::ADYEN_MASTERCARD_PAYMENT_METHOD_ID,
  127.         self::PAYMENT_METHOD_SLUG_ADYEN_VISA => self::ADYEN_VISA_PAYMENT_METHOD_ID,
  128.         self::PAYMENT_METHOD_SLUG_CREDIT_CARD => self::PAYPAL_CREDIT_CARD_PAYMENT_METHOD_ID,
  129.         self::PAYMENT_METHOD_SLUG_ADYEN_PAYBYBANK => self::ADYEN_BANK_TRANSFER_PAYMENT_METHOD_ID,
  130.         self::PAYMENT_METHOD_SLUG_ADYEN_BCMC => self::ADYEN_BANKCONTACT_PAYMENT_METHOD_ID,
  131.         self::PAYMENT_METHOD_SLUG_ADYEN_CARTEBANCAIRE => self::ADYEN_CARTE_BANCAIRE_PAYMENT_METHOD_ID,
  132.         self::PAYMENT_METHOD_SLUG_ADYEN_EPS => self::ADYEN_ELECTRONIC_PAYMENT_METHOD_ID,
  133.         self::PAYMENT_METHOD_SLUG_ADYEN_MBWAY => self::ADYEN_MBWAY_PAYMENT_METHOD_ID,
  134.         self::PAYMENT_METHOD_SLUG_ADYEN_TRUSTLY => self::ADYEN_TRUSTLY_PAYMENT_METHOD_ID,
  135.         self::PAYMENT_METHOD_SLUG_ADYEN_ONLINE_BANKING_PL => self::ADYEN_ONLINE_BANKING_PAYMENT_METHOD_ID,
  136.         self::PAYMENT_METHOD_SLUG_ADYEN_KLARNA_B2B => self::ADYEN_BUYNOW_PAYLATER_PAYMENT_METHOD_ID,
  137.         self::PAYMENT_METHOD_SLUG_ADYEN_GOOGLEPAY => self::ADYEN_GOOGLE_PAY_PAYMENT_METHOD_ID,
  138.         self::PAYMENT_METHOD_SLUG_ADYEN_EBANKING_FI => self::ADYEN_FINISH_EBANKING_PAYMENT_METHOD_ID,
  139.         self::PAYMENT_METHOD_SLUG_STRIPE_CARD => self::STRIPE_CARD_PAYMENT_METHOD_ID,
  140.         self::PAYMENT_METHOD_SLUG_STRIPE_GOOGLE_PAY => self::STRIPE_GOOGLE_PAY_PAYMENT_METHOD_ID,
  141.         self::PAYMENT_METHOD_SLUG_STRIPE_APPLE_PAY => self::STRIPE_APPLE_PAY_PAYMENT_METHOD_ID,
  142.         self::PAYMENT_METHOD_SLUG_STRIPE_LINK => self::STRIPE_LINK_PAYMENT_METHOD_ID,
  143.         self::PAYMENT_METHOD_SLUG_STRIPE_REVOLUT_PAY => self::STRIPE_REVOLUT_PAY_PAYMENT_METHOD_ID,
  144.         self::PAYMENT_METHOD_SLUG_STRIPE_BANCONTACT => self::STRIPE_BANCONTACT_PAYMENT_METHOD_ID,
  145.         self::PAYMENT_METHOD_SLUG_STRIPE_CARTEBANCAIRE => self::STRIPE_CARTES_BANCAIRES_PAYMENT_METHOD_ID,
  146.         self::PAYMENT_METHOD_SLUG_STRIPE_KLARNA => self::STRIPE_KLARNA_PAYMENT_METHOD_ID,
  147.         self::PAYMENT_METHOD_SLUG_STRIPE_SEPA_DEBIT => self::STRIPE_SEPA_DIRECT_DEBIT_PAYMENT_METHOD_ID,
  148.         self::PAYMENT_METHOD_SLUG_STRIPE_IDEAL => self::STRIPE_IDEAL_PAYMENT_METHOD_ID,
  149.         self::PAYMENT_METHOD_SLUG_STRIPE_PAYPAL => self::STRIPE_PAYPAL_PAYMENT_METHOD_ID,
  150.     ];
  151.     public const PAYMENT_METHOD_ATTRIBUTE_NAMES_INDEXED_BY_ID = [
  152.         self::CASH_ON_DELIVERY_METHOD_ID => PaymentMethodAttributes::KEY_ON_DELIVERY,
  153.         self::PAYPAL_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_PAYPAL,
  154.         self::FLEXIBLE_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_FLEXIBLE,
  155.         self::MONEYBOX_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_WALLET,
  156.         self::TRANSFER_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_BANKWIRE,
  157.         self::BRAINTREE_METHOD_ID => PaymentMethodAttributes::KEY_BRAINTREE,
  158.         self::CREDIT_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ON_CREDIT,
  159.         self::CONFIRMING_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_PAYPAL_REVIEW,
  160.         self::SOFORT_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_PAYPAL_REVIEW,
  161.         self::ADYEN_AMERICAN_EXPRESS_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_AMERICAN_EXPRESS,
  162.         self::ADYEN_IDEAL_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_IDEAL,
  163.         self::ADYEN_MASTERCARD_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_MASTERCARD,
  164.         self::ADYEN_VISA_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_VISA,
  165.         self::PAYPAL_CREDIT_CARD_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_CREDIT_CARD,
  166.         self::ADYEN_BANK_TRANSFER_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_BANK_TRANSFER,
  167.         self::ADYEN_BANKCONTACT_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_BANKCONTACT,
  168.         self::ADYEN_ELECTRONIC_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_ELECTRONIC,
  169.         self::ADYEN_MBWAY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_MBWAY,
  170.         self::ADYEN_TRUSTLY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_TRUSTLY,
  171.         self::ADYEN_ONLINE_BANKING_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_ONLINE_BANKING,
  172.         self::ADYEN_BUYNOW_PAYLATER_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_BUYNOW_PAYLATER,
  173.         self::ADYEN_GOOGLE_PAY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_GOOGLE_PAY,
  174.         self::ADYEN_FINISH_EBANKING_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_FINISH_EBANKING,
  175.         self::ADYEN_CARTE_BANCAIRE_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_CARTE_BANCAIRES,
  176.         self::STRIPE_CARD_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_CARD,
  177.         self::STRIPE_GOOGLE_PAY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_GOOGLE_PAY,
  178.         self::STRIPE_APPLE_PAY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_APPLE_PAY,
  179.         self::STRIPE_LINK_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_LINK,
  180.         self::STRIPE_REVOLUT_PAY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_REVOLUT_PAY,
  181.         self::STRIPE_BANCONTACT_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_BANCONTACT,
  182.         self::STRIPE_CARTES_BANCAIRES_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_CARTES_BANCAIRES,
  183.         self::STRIPE_KLARNA_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_KLARNA,
  184.         self::STRIPE_SEPA_DIRECT_DEBIT_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_SEPA_DIRECT_DEBIT,
  185.         self::STRIPE_IDEAL_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_IDEAL,
  186.         self::STRIPE_PAYPAL_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_PAYPAL,
  187.     ];
  188.     public const ENABLED_COUNTRY_IDS_INDEXED_BY_STRIPE_PAYMENT_METHOD_SLUG = [
  189.         self::STRIPE_REVOLUT_PAY_SLUG => [Country::UNITED_KINGDOM_CODE],
  190.         self::STRIPE_BANCONTACT_SLUG => [Country::BELGIUM_CODE],
  191.         self::STRIPE_CARTEBANCAIRE_SLUG => [Country::FRANCE_CODE],
  192.         self::STRIPE_KLARNA_SLUG => [Country::UNITED_STATES],
  193.         self::STRIPE_IDEAL_SLUG => [Country::NETHERLANDS_CODE],
  194.     ];
  195.     public const ENABLED_ZONE_IDS_INDEXED_BY_STRIPE_PAYMENT_METHOD_SLUG = [
  196.         self::STRIPE_REVOLUT_PAY_SLUG => [Zone::ZONE_EU],
  197.         self::STRIPE_KLARNA_SLUG => [Zone::ZONE_EU],
  198.         self::STRIPE_SEPA_DEBIT_SLUG => [Zone::ZONE_EU],
  199.     ];
  200.     /**
  201.      * @ORM\Id()
  202.      *
  203.      * @ORM\GeneratedValue()
  204.      *
  205.      * @ORM\Column(type="integer", name="id_payment_method")
  206.      */
  207.     private $id;
  208.     /**
  209.      * @var string
  210.      *
  211.      * @ORM\Column(type="string", length=255, name="id_text")
  212.      */
  213.     private $payment;
  214.     /**
  215.      * @var string
  216.      *
  217.      * @ORM\Column(type="string", length=128, name="title")
  218.      */
  219.     private $title;
  220.     /**
  221.      * @var string|null
  222.      *
  223.      * @ORM\Column(type="string", length=128, name="subtitle", nullable=true)
  224.      */
  225.     private $subtitle;
  226.     /**
  227.      * @var string
  228.      *
  229.      * @ORM\Column(type="string", length=512, name="image_url")
  230.      */
  231.     private $imageUrl;
  232.     /**
  233.      * @var string
  234.      *
  235.      * @ORM\Column(type="string", length=64, name="slug")
  236.      */
  237.     private $slug;
  238.     /**
  239.      * @var string|null
  240.      *
  241.      * @ORM\Column(type="string", length=64, name="base_slug", nullable=true)
  242.      */
  243.     private ?string $baseSlug null;
  244.     /**
  245.      * @var bool
  246.      *
  247.      * @ORM\Column(type="boolean", name="recurring", options={"default" : 0})
  248.      */
  249.     private $recurring;
  250.     /**
  251.      * @var float
  252.      *
  253.      * @ORM\Column(type="float", options={"default" : 0})
  254.      */
  255.     private $fixedRate;
  256.     /**
  257.      * @var float
  258.      *
  259.      * @ORM\Column(type="float", options={"default" : 0})
  260.      */
  261.     private $variableRate;
  262.     /**
  263.      * @var bool
  264.      *
  265.      * @ORM\Column(type="boolean", name="active", options={"default" : 0})
  266.      */
  267.     private $active;
  268.     /**
  269.      * @var bool
  270.      *
  271.      * @ORM\Column(type="boolean", name="moneybox", options={"default" : 0})
  272.      */
  273.     private $moneybox;
  274.     /**
  275.      * @var bool
  276.      *
  277.      * @ORM\Column(type="boolean", name="csv", options={"default" : 0})
  278.      */
  279.     private $csv;
  280.     /**
  281.      * @var bool
  282.      *
  283.      * @ORM\Column(type="boolean", name="activeByRole", options={"default" : 0})
  284.      */
  285.     private $activeByRole;
  286.     /**
  287.      * @var ArrayCollection<int, Cart>|Cart[]
  288.      *
  289.      * @ORM\OneToMany(targetEntity="App\Entity\System\Cart", mappedBy="packPaymentMethod")
  290.      */
  291.     private $packCarts;
  292.     /**
  293.      * @var ArrayCollection<int, Cart>|Cart[]
  294.      *
  295.      * @ORM\OneToMany(targetEntity="App\Entity\System\Cart", mappedBy="servicesPaymentMethod")
  296.      */
  297.     private $servicesCarts;
  298.     public function __construct(string $typestring $name)
  299.     {
  300.         $this->active false;
  301.         $this->moneybox false;
  302.         $this->activeByRole false;
  303.         $this->slug $type;
  304.         $this->title $name;
  305.         $this->payment self::PAYMENT_METHOD_ADYEN;
  306.         $this->subtitle $type;
  307.         $this->imageUrl $type.'.svg';
  308.         $this->recurring false;
  309.         $this->fixedRate 0;
  310.         $this->variableRate 0;
  311.         $this->csv false;
  312.     }
  313.     /**
  314.      * @return int
  315.      */
  316.     public function getId(): int
  317.     {
  318.         return $this->id;
  319.     }
  320.     /**
  321.      * @param int $id
  322.      *
  323.      * @return PaymentMethod
  324.      */
  325.     public function setId(int $id): PaymentMethod
  326.     {
  327.         $this->id $id;
  328.         return $this;
  329.     }
  330.     /**
  331.      * @return string
  332.      */
  333.     public function getPayment(): string
  334.     {
  335.         return $this->payment;
  336.     }
  337.     /**
  338.      * @param string $payment
  339.      *
  340.      * @return PaymentMethod
  341.      */
  342.     public function setPayment(string $payment): PaymentMethod
  343.     {
  344.         $this->payment $payment;
  345.         return $this;
  346.     }
  347.     /**
  348.      * @return string
  349.      */
  350.     public function getTitle(): string
  351.     {
  352.         return $this->title;
  353.     }
  354.     /**
  355.      * @param string $title
  356.      *
  357.      * @return PaymentMethod
  358.      */
  359.     public function setTitle(string $title): self
  360.     {
  361.         $this->title $title;
  362.         return $this;
  363.     }
  364.     /**
  365.      * @return string|null
  366.      */
  367.     public function getSubtitle(): ?string
  368.     {
  369.         return $this->subtitle;
  370.     }
  371.     /**
  372.      * @param string|null $subtitle
  373.      *
  374.      * @return PaymentMethod
  375.      */
  376.     public function setSubtitle(?string $subtitle): self
  377.     {
  378.         $this->subtitle $subtitle;
  379.         return $this;
  380.     }
  381.     /**
  382.      * @return string
  383.      */
  384.     public function getImageUrl(): string
  385.     {
  386.         return $this->imageUrl;
  387.     }
  388.     /**
  389.      * @param string $imageUrl
  390.      *
  391.      * @return PaymentMethod
  392.      */
  393.     public function setImageUrl(string $imageUrl): self
  394.     {
  395.         $this->imageUrl $imageUrl;
  396.         return $this;
  397.     }
  398.     /**
  399.      * @return string
  400.      */
  401.     public function getSlug(): string
  402.     {
  403.         return $this->slug;
  404.     }
  405.     /**
  406.      * @param string $slug
  407.      *
  408.      * @return PaymentMethod
  409.      */
  410.     public function setSlug(string $slug): self
  411.     {
  412.         $this->slug $slug;
  413.         return $this;
  414.     }
  415.     /**
  416.      * @return string|null
  417.      */
  418.     public function getBaseSlug(): ?string
  419.     {
  420.         return $this->baseSlug;
  421.     }
  422.     /**
  423.      * @param string|null $baseSlug
  424.      *
  425.      * @return PaymentMethod
  426.      */
  427.     public function setBaseSlug(?string $baseSlug): self
  428.     {
  429.         $this->baseSlug $baseSlug;
  430.         return $this;
  431.     }
  432.     /**
  433.      * @return bool
  434.      */
  435.     public function isRecurring(): bool
  436.     {
  437.         return $this->recurring;
  438.     }
  439.     /**
  440.      * @param bool $recurring
  441.      *
  442.      * @return PaymentMethod
  443.      */
  444.     public function setRecurring(bool $recurring): self
  445.     {
  446.         $this->recurring $recurring;
  447.         return $this;
  448.     }
  449.     /**
  450.      * @return float
  451.      */
  452.     public function getFixedRate(): float
  453.     {
  454.         return $this->fixedRate;
  455.     }
  456.     /**
  457.      * @param float $fixedRate
  458.      *
  459.      * @return PaymentMethod
  460.      */
  461.     public function setFixedRate(float $fixedRate): self
  462.     {
  463.         $this->fixedRate $fixedRate;
  464.         return $this;
  465.     }
  466.     /**
  467.      * @return float
  468.      */
  469.     public function getVariableRate(): float
  470.     {
  471.         return $this->variableRate;
  472.     }
  473.     /**
  474.      * @param float $variableRate
  475.      *
  476.      * @return PaymentMethod
  477.      */
  478.     public function setVariableRate(float $variableRate): self
  479.     {
  480.         $this->variableRate $variableRate;
  481.         return $this;
  482.     }
  483.     /**
  484.      * @return bool
  485.      */
  486.     public function isActive(): bool
  487.     {
  488.         return $this->active;
  489.     }
  490.     /**
  491.      * @param bool $active
  492.      *
  493.      * @return PaymentMethod
  494.      */
  495.     public function setActive(bool $active): self
  496.     {
  497.         $this->active $active;
  498.         return $this;
  499.     }
  500.     public function isMoneybox(): bool
  501.     {
  502.         return $this->moneybox;
  503.     }
  504.     public function setMoneybox(bool $moneybox): self
  505.     {
  506.         $this->moneybox $moneybox;
  507.         return $this;
  508.     }
  509.     public function isCsv(): bool
  510.     {
  511.         return $this->csv;
  512.     }
  513.     public function setCsv(bool $csv): PaymentMethod
  514.     {
  515.         $this->csv $csv;
  516.         return $this;
  517.     }
  518.     /**
  519.      * @return string
  520.      */
  521.     public function getNameToShow(): string
  522.     {
  523.         if (strtolower($this->title) === 'credit card') {
  524.             return $this->subtitle;
  525.         }
  526.         return $this->title;
  527.     }
  528.     public function isActiveByRole(): bool
  529.     {
  530.         return $this->activeByRole;
  531.     }
  532.     public function setActiveByRole(bool $activeByRole): PaymentMethod
  533.     {
  534.         $this->activeByRole $activeByRole;
  535.         return $this;
  536.     }
  537.     public function getAdyenRole(): string
  538.     {
  539.         return 'ROLE_ADYEN_PAYMENT_METHOD_'.strtoupper($this->slug);
  540.     }
  541.     public function getStripeRole(): string
  542.     {
  543.         return 'ROLE_STRIPE_PAYMENT_METHOD_'.strtoupper($this->slug);
  544.     }
  545.     /**
  546.      * @return Cart[]|ArrayCollection<int, Cart>
  547.      */
  548.     public function getPackCarts()
  549.     {
  550.         return $this->packCarts;
  551.     }
  552.     /**
  553.      * @param Cart[]|ArrayCollection<int, Cart> $packCarts
  554.      */
  555.     public function setPackCarts($packCarts): PaymentMethod
  556.     {
  557.         $this->packCarts $packCarts;
  558.         return $this;
  559.     }
  560.     /**
  561.      * @return Cart[]|ArrayCollection<int, Cart>
  562.      */
  563.     public function getServicesCarts()
  564.     {
  565.         return $this->servicesCarts;
  566.     }
  567.     /**
  568.      * @param Cart[]|ArrayCollection<int, Cart> $servicesCarts
  569.      */
  570.     public function setServicesCarts($servicesCarts): PaymentMethod
  571.     {
  572.         $this->servicesCarts $servicesCarts;
  573.         return $this;
  574.     }
  575. }