<?xml version="1.0"?>
<!--
/**
 * @author Amasty Team
 * @copyright Copyright (c) Amasty (https://www.amasty.com)
 * @package One Step Checkout Core for Magento 2
 */-->

<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd">

    <!-- Additional Fields (order comment) -->
    <route url="/V1/amasty_checkout/carts/:cartId/amcheckoutFields" method="POST">
        <service class="Amasty\CheckoutCore\Api\AdditionalFieldsManagementInterface" method="save"/>
        <resources>
            <resource ref="Magento_Cart::manage" />
        </resources>
    </route>

    <route url="/V1/amasty_checkout/guest-carts/:cartId/amcheckoutFields" method="POST">
        <service class="Amasty\CheckoutCore\Api\GuestAdditionalFieldsManagementInterface" method="save"/>
        <resources>
            <resource ref="anonymous" />
        </resources>
    </route>

    <route url="/V1/amasty_checkout/carts/mine/amcheckoutFields" method="POST">
        <service class="Amasty\CheckoutCore\Api\AdditionalFieldsManagementInterface" method="save"/>
        <resources>
            <resource ref="self" />
        </resources>
        <data>
            <parameter name="cartId" force="true">%amasty_checkout_cart_id%</parameter>
        </data>
    </route>

    <!-- Remove Item -->
    <route url="/V1/amasty_checkout/carts/:cartId/remove-item" method="POST">
        <service class="Amasty\CheckoutCore\Api\ItemManagementInterface" method="remove"/>
        <resources>
            <resource ref="Magento_Cart::manage" />
        </resources>
    </route>

    <route url="/V1/amasty_checkout/guest-carts/:cartId/remove-item" method="POST">
        <service class="Amasty\CheckoutCore\Api\GuestItemManagementInterface" method="remove"/>
        <resources>
            <resource ref="anonymous" />
        </resources>
    </route>

    <route url="/V1/amasty_checkout/carts/mine/remove-item" method="POST">
        <service class="Amasty\CheckoutCore\Api\ItemManagementInterface" method="remove"/>
        <resources>
            <resource ref="self" />
        </resources>
        <data>
            <parameter name="cartId" force="true">%amasty_checkout_cart_id%</parameter>
        </data>
    </route>

    <!-- Update Item -->
    <route url="/V1/amasty_checkout/carts/:cartId/update-item" method="POST">
        <service class="Amasty\CheckoutCore\Api\ItemManagementInterface" method="update"/>
        <resources>
            <resource ref="Magento_Cart::manage" />
        </resources>
    </route>

    <route url="/V1/amasty_checkout/guest-carts/:cartId/update-item" method="POST">
        <service class="Amasty\CheckoutCore\Api\GuestItemManagementInterface" method="update"/>
        <resources>
            <resource ref="anonymous" />
        </resources>
    </route>

    <route url="/V1/amasty_checkout/carts/mine/update-item" method="POST">
        <service class="Amasty\CheckoutCore\Api\ItemManagementInterface" method="update"/>
        <resources>
            <resource ref="self" />
        </resources>
        <data>
            <parameter name="cartId" force="true">%amasty_checkout_cart_id%</parameter>
        </data>
    </route>

    <route url="/V1/amasty_checkout/guest-carts/:cartId/save-password" method="POST">
        <service class="Amasty\CheckoutCore\Api\AccountManagementInterface" method="savePassword"/>
        <resources>
            <resource ref="anonymous" />
        </resources>
    </route>

    <route url="/V1/checkout/:cartId/saveInsertedInfo" method="POST">
        <service class="Amasty\CheckoutCore\Api\GuestQuoteManagementInterface" method="saveInsertedInfo"/>
        <resources>
            <resource ref="anonymous" />
        </resources>
    </route>

    <route url="/V1/checkout/saveInsertedInfo" method="POST">
        <service class="Amasty\CheckoutCore\Api\QuoteManagementInterface" method="saveInsertedInfo"/>
        <resources>
            <resource ref="self" />
        </resources>
        <data>
            <parameter name="cartId" force="true">%amasty_checkout_cart_id%</parameter>
        </data>
    </route>

    <route url="/V1/amasty_checkout/js/create-bundle" method="POST">
        <service class="\Amasty\CheckoutCore\Api\MergeJsInterface" method="createBundle"/>
        <resources>
            <resource ref="anonymous" />
        </resources>
    </route>
</routes>
