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