src/Entity/System/PaymentMethod.php line 17

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