<?xml version="1.0"?>
<schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:Setup/Declaration/Schema/etc/schema.xsd">
  <table name="sales_order" resource="default" engine="innodb">
    <column xsi:type="text" name="transaction_id" nullable="true" comment="Transaction Id"/>
  </table>

  <table name="eway_orders" resource="default" engine="innodb">
    <column xsi:type="int" name="order_id" padding="10" unsigned="true" nullable="false" identity="false"/>
    <column xsi:type="text" name="items_ordered" nullable="true"/>
    <column xsi:type="decimal" name="beagle_score" scale="2" precision="5" unsigned="false" nullable="true"/>
    <column xsi:type="varchar" name="fraud_action" nullable="true" length="50"/>
    <column xsi:type="boolean" name="transaction_captured" nullable="true"/>
    <column xsi:type="text" name="fraud_messages" nullable="true"/>
    <column xsi:type="boolean" name="should_verify" nullable="true"/>
    <column xsi:type="varchar" name="transaction_id" nullable="true" length="50"/>
    <constraint xsi:type="primary" referenceId="PRIMARY">
      <column name="order_id"/>
    </constraint>
    <constraint xsi:type="foreign" referenceId="EWAY_ORDERS_ORDER_ID_SALES_ORDER_GRID_ENTITY_ID" table="eway_orders" column="order_id" referenceTable="sales_order_grid" referenceColumn="entity_id" onDelete="CASCADE"/>
    <index referenceId="EWAY_ORDERS_SHOULD_VERIFY" indexType="btree">
      <column name="should_verify"/>
    </index>
  </table>

  <table name="eway_order_creation_exception" resource="default" engine="innodb">
    <column xsi:type="int" name="entity_id" padding="10" unsigned="true" nullable="false" identity="true"
            comment="Entity Id"/>
    <column xsi:type="int" name="customer_id" padding="10" unsigned="true" nullable="true" identity="false"
            comment="Customer Id"/>
    <column xsi:type="int" name="quote_id" padding="10" unsigned="true" nullable="false" identity="false"
            default="0" comment="Quote Id"/>
    <column xsi:type="varchar" name="transaction_id" nullable="true" length="255" comment="Transaction Id"/>
    <column xsi:type="varchar" name="access_code" nullable="true" length="255" comment="Access Code"/>
    <column xsi:type="varchar" name="error_message" nullable="true" length="255" comment="Error Message"/>
    <column xsi:type="longtext" name="exception_trace" nullable="true" comment="Exception Trace"/>
    <column xsi:type="timestamp" name="created_at" on_update="false" nullable="false" default="CURRENT_TIMESTAMP"
            comment="Create date"/>
    <constraint xsi:type="primary" referenceId="PRIMARY">
      <column name="entity_id"/>
    </constraint>
    <index referenceId="EWAY_ORDER_CREATION_EXCEPTION_CUSTOMER_ID" indexType="btree">
      <column name="customer_id"/>
    </index>
    <index referenceId="EWAY_ORDER_CREATION_EXCEPTION_QUOTE_ID" indexType="btree">
      <column name="quote_id"/>
    </index>
    <index referenceId="EWAY_ORDER_CREATION_EXCEPTION_TRANSACTION_ID" indexType="btree">
      <column name="transaction_id"/>
    </index>
    <index referenceId="EWAY_ORDER_CREATION_EXCEPTION_ACCESS_CODE" indexType="btree">
      <column name="access_code"/>
    </index>
  </table>
</schema>
