<?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="ctsg_source_address_entity" resource="default" engine="innodb" comment="Customer Source Address Entity">
        <column xsi:type="int" name="entity_id" padding="10" unsigned="true" nullable="false" identity="true"
                comment="Entity ID"/>
        <column xsi:type="int" name="parent_id" padding="10" unsigned="true" nullable="true" identity="false"
                comment="Parent ID"/>
        <column xsi:type="timestamp" name="created_at" on_update="false" nullable="false" default="CURRENT_TIMESTAMP"
                comment="Created At"/>
        <column xsi:type="timestamp" name="updated_at" on_update="true" nullable="false" default="CURRENT_TIMESTAMP"
                comment="Updated At"/>
        <column xsi:type="varchar" name="city" nullable="false" length="255" comment="City"/>
        <column xsi:type="varchar" name="company" nullable="true" length="255" comment="Company"/>
        <column xsi:type="varchar" name="country_id" nullable="false" length="255" comment="Country"/>
        <column xsi:type="varchar" name="fax" nullable="true" length="255" comment="Fax"/>
        <column xsi:type="varchar" name="email" nullable="true" length="255" comment="Email"/>
        <column xsi:type="varchar" name="firstname" nullable="false" length="255" comment="First Name"/>
        <column xsi:type="varchar" name="lastname" nullable="false" length="255" comment="Last Name"/>
        <column xsi:type="varchar" name="middlename" nullable="true" length="255" comment="Middle Name"/>
        <column xsi:type="varchar" name="postcode" nullable="true" length="255" comment="Zip/Postal Code"/>
        <column xsi:type="varchar" name="prefix" nullable="true" length="40" comment="Name Prefix"/>
        <column xsi:type="varchar" name="region" nullable="true" length="255" comment="State/Province"/>
        <column xsi:type="int" name="region_id" padding="10" unsigned="true" nullable="true" identity="false"
                comment="State/Province"/>
        <column xsi:type="text" name="street" nullable="false" comment="Street Address"/>
        <column xsi:type="varchar" name="suffix" nullable="true" length="40" comment="Name Suffix"/>
        <column xsi:type="varchar" name="telephone" nullable="false" length="255" comment="Phone Number"/>
        <column name="is_default" nullable="true" default="0" xsi:type="boolean" comment="Is Default Source Address"/>

        <constraint xsi:type="primary" referenceId="PRIMARY">
            <column name="entity_id"/>
        </constraint>
        <constraint xsi:type="foreign" referenceId="CUSTOMER_ADDRESS_ENTITY_PARENT_ID_CUSTOMER_ENTITY_ENTITY_ID"
                    table="customer_address_entity" column="parent_id" referenceTable="customer_entity"
                    referenceColumn="entity_id" onDelete="CASCADE"/>
        <index referenceId="CUSTOMER_ADDRESS_ENTITY_PARENT_ID" indexType="btree">
            <column name="parent_id"/>
        </index>
    </table>

    <table name="ch_shipment_additional" resource="default" engine="innodb" comment="ch_shipment_additional Table">
        <column xsi:type="smallint" name="ch_shipment_additional_id" padding="6" unsigned="true" nullable="false" identity="true" comment="Entity Id"/>
        <constraint xsi:type="primary" referenceId="PRIMARY">
            <column name="ch_shipment_additional_id"/>
        </constraint>
        <column name="sales_shipment_id" nullable="false" xsi:type="int" comment="sales_shipment entity id" identity="false"/>
        <column name="source_address_id" nullable="true" xsi:type="int" comment="Source Address Id" identity="false"/>
        <column name="shipment_carrier" nullable="true" xsi:type="varchar" comment="Shipment Carrier" length="30"/>
        <column name="shipment_carrier_method_code" nullable="true" xsi:type="varchar" comment="Shipment Carrier Method Code" length="30"/>
        <column name="shipment_date" nullable="true" xsi:type="varchar" comment="Shipment Date" length="20"/>
        <column name="shipment_ready_time" nullable="true" xsi:type="varchar" comment="Ready Time" length="10"/>
        <column name="shipment_closing_time" nullable="true" xsi:type="varchar" comment="Office Closing time" length="10"/>
        <column name="organization" nullable="true" xsi:type="varchar" comment="Organization" length="30"/>
        <column name="user" nullable="true" xsi:type="varchar" comment="User" length="255"/>
        <column name="location_name" nullable="true" xsi:type="varchar" comment="Location Name" length="255"/>
        <column name="pickup_type" nullable="true" xsi:type="int" comment="Pick-up/Drop-off" identity="false"/>
        <column name="payment_type" nullable="true" xsi:type="varchar" comment="Payment Type" length="20"/>
        <column name="reference_1" nullable="true" xsi:type="varchar" comment="Reference #1" length="255"/>
        <column name="reference_2" nullable="true" xsi:type="varchar" comment="Reference #2" length="255"/>
        <column name="instruction" nullable="true" xsi:type="varchar" comment="Instruction" length="255"/>
        <column name="description" nullable="true" xsi:type="varchar" comment="Description Of Goods" length="255"/>
        <column name="is_notify_me" nullable="true" xsi:type="boolean" comment="Notify Me"/>
        <column name="is_notify_receiver" nullable="true" xsi:type="boolean" comment="Notify Receiver"/>
        <column name="notify_me_email" nullable="true" xsi:type="varchar" comment="Notify Me Email" length="50"/>
        <column name="notify_receiver_email" nullable="true" xsi:type="varchar" comment="Notify Receiver Email" length="50"/>
        <column name="payment_account_number" nullable="true" xsi:type="varchar" comment="Payment Account Number (Collect or Third Party)" length="30"/>
        <column name="void_id" nullable="true" xsi:type="varchar" comment="Shipment or tracking Id that is used to void" length="30"/>
        <column name="commercial_invoice_id" nullable="true" xsi:type="varchar" comment="Commercial Invoice Id" length="30"/>
    </table>

    <table name="quote_address" resource="default" engine="innodb">
        <column xsi:type="varchar" name="nickname" nullable="true" length="40" comment="Nickname"/>
    </table>
</schema>
