<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<entitymodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entitymodel.xsd">
    
    <!-- ========================================================= -->
    <!-- ======================== Defaults ======================= -->
    <!-- ========================================================= -->
    <title>Entity of an Open For Business Project Component</title>
    <description>None</description>
    <version>1.0</version>
    
    <!-- ========================================================= -->
    <!-- ======================== Data Model ===================== -->
    <!-- The modules in this file are as follows:                  -->
    <!--  - org.ofbiz.googlecheckout.config -->  
    <!--  - org.ofbiz.googlecheckout.shipping -->  
    <!-- ========================================================= -->
    
    <!-- ========================================================= -->
    <!-- org.ofbiz.googlecheckout.config -->
    <!-- ========================================================= -->
  
    <entity entity-name="GoogleCoConfiguration"
            package-name="org.ofbiz.googlecheckout.config"
            title="Google Checkout Configuration">
        <field name="productStoreId" type="id-ne"></field> 
        <field name="merchantId" type="value"></field>
        <field name="merchantKey" type="value"></field>
        <field name="envEnumId" type="id-ne"></field>        
        <field name="webSiteId" type="id-ne"></field>
        <field name="prodCatalogId" type="id-ne"></field>
        <field name="currencyUomId" type="id-ne"></field>
        <field name="requestAuthDetails" type="indicator"></field>
        <field name="requestPhone" type="indicator"></field>
        <field name="sendPromoItems" type="indicator"></field> 
        <field name="errorOnBadItem" type="indicator"></field>
        <field name="acceptCoupons" type="indicator"></field>
        <field name="acceptGiftCerts" type="indicator"></field>       
        <prim-key field="productStoreId"/>      
        <relation type="one" fk-name="GCC_PROD_STORE" rel-entity-name="ProductStore">
            <key-map field-name="productStoreId"/>
        </relation>
        <relation type="one" fk-name="GCC_ENV_ENUM" rel-entity-name="Enumeration">
            <key-map field-name="envEnumId" rel-field-name="enumId"/>
        </relation>
        <relation type="one" fk-name="GCC_WEBSITE" rel-entity-name="WebSite">
            <key-map field-name="webSiteId"/>
        </relation>
        <relation type="one" fk-name="GCC_PROD_CAT" rel-entity-name="ProdCatalog">
            <key-map field-name="prodCatalogId"/>
        </relation>  
        <relation type="one" fk-name="GCC_CUOM" rel-entity-name="Uom">
            <key-map field-name="currencyUomId" rel-field-name="uomId"/>
        </relation>    
    </entity>
    
    <!-- ========================================================= -->
    <!-- org.ofbiz.googlecheckout.shipping -->
    <!-- ========================================================= -->
    
    <entity entity-name="GoogleCoShippingMethod"
            package-name="org.ofbiz.googlecheckout.shipping"
            title="Google Shipping Method Config">
        <field name="shipmentMethodName" type="id-long-ne"></field>
        <field name="productStoreId" type="id-ne"></field>
        <field name="amount" type="currency-amount"></field>
        <field name="additionalAmount" type="currency-amount"></field>
        <field name="additionalPercent" type="fixed-point"></field>
        <field name="methodTypeEnumId" type="id-ne"></field>
        <field name="carrierPartyId" type="id-ne"></field>
        <field name="shipmentMethodTypeId" type="id-ne"></field>      
        <prim-key field="shipmentMethodName"/>
        <prim-key field="productStoreId"/>
        <relation type="one" fk-name="GSM_PROD_STORE" rel-entity-name="ProductStore">
            <key-map field-name="productStoreId"/>
        </relation>
        <relation type="one" fk-name="GSM_TYPE_ENUM" rel-entity-name="Enumeration">
            <key-map field-name="methodTypeEnumId" rel-field-name="enumId"/>
        </relation>
        <relation type="one" fk-name="GSM_CARRIER_PARTY" rel-entity-name="Party">
            <key-map field-name="carrierPartyId" rel-field-name="partyId"/>
        </relation>
        <relation type="one" fk-name="GSM_SHIPMETH_TYPE" rel-entity-name="ShipmentMethodType">
            <key-map field-name="shipmentMethodTypeId"/>
        </relation>
    </entity>
</entitymodel>
