<?xml version="1.0" encoding="UTF-8" ?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
                                  http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"
                  xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping"
>
    <mapped-superclass name="Sylius\MolliePlugin\Entity\MollieGatewayConfig" table="mollie_configuration">
        <id name="id" type="integer">
            <generator strategy="AUTO"/>
        </id>
        <field name="methodId" column="method_id"/>
        <field name="name" column="name" />
        <field name="enabled" column="enabled" type="boolean" />
        <field name="image" column="image" type="array" />
        <field name="minimumAmount" column="minimum_amount" type="array" />
        <field name="maximumAmount" column="maximum_amount" type="array" />
        <field name="paymentType" column="payment_type" />
        <field name="country" column="country" type="array" />
        <field name="canRefunded" column="can_refunded" type="boolean" />
        <field name="issuers" column="issuers" type="array" nullable="true" />
        <field name="countryRestriction" column="country_restriction" nullable="true" />
        <field name="countryLevelExcluded" column="country_level_excluded" type="array" nullable="true" />
        <field name="countryLevelAllowed" column="country_level_allowed" type="array" nullable="true" />
        <field name="orderExpirationDays" column="order_expiration_days" type="integer" nullable="true" />
        <field name="applePayDirectButton" column="apple_pay_direct" type="boolean" />
        <field name="position" column="position" type="integer" />
        <field name="qrCodeEnabled" column="qr_code_enabled" type="boolean" nullable="true" />
        <many-to-one field="gateway" target-entity="Sylius\Bundle\PayumBundle\Model\GatewayConfigInterface" inversed-by="mollieGatewayConfig">
            <join-column name="gateway_id" referenced-column-name="id"/>
        </many-to-one>
        <one-to-one field="paymentSurchargeFee" target-entity="Sylius\MolliePlugin\Entity\PaymentSurchargeFee" inversed-by="mollieGatewayConfig">
            <cascade>
                <cascade-persist/>
                <cascade-remove/>
            </cascade>
            <join-column name="payment_surcharge_fee"/>
        </one-to-one>
        <one-to-one field="amountLimits" target-entity="Sylius\MolliePlugin\Entity\MollieMinMax" inversed-by="mollieGatewayConfig">
            <cascade>
                <cascade-persist/>
                <cascade-remove/>
            </cascade>
            <join-column name="amount_limits_id"/>
        </one-to-one>
        <one-to-one field="customizeMethodImage" target-entity="Sylius\MolliePlugin\Entity\MollieMethodImage" inversed-by="mollieGatewayConfig">
            <cascade>
                <cascade-all />
            </cascade>
            <join-column name="method_image_id"/>
        </one-to-one>
        <one-to-one field="defaultCategory" target-entity="Sylius\MolliePlugin\Entity\ProductType" inversed-by="mollieGatewayConfig">
            <cascade>
                <cascade-persist/>
                <cascade-remove/>
            </cascade>
            <join-column name="default_category_id"/>
        </one-to-one>
        <field name="paymentDescription" column="payment_description" nullable="true"/>
    </mapped-superclass>
</doctrine-mapping>
