<?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 testing suite</title>
    <description>None</description>
    <version>1.0</version>

  <!-- =========================================================
    For the test, testing is the basic entity.
    It can have a type represented by TestingType, and can be a member of a TestingNode.

    TestingNodes represent a hierarchy of Node, each Node can have one parent
    and many children.

    A TestingNodeMember can be member of many TestingNodes.

  ========================================================= -->
  <!-- ======================== Data Model ===================== -->
  <!-- The modules in this file are as follows:                  -->
  <!--  - org.ofbiz.entity.test -->
  <!-- ========================================================= -->

  <!-- =========================================================
    The testing entity is a basic entity with a type
  ========================================================= -->
    <entity entity-name="Testing"
        package-name="org.ofbiz.entity.test"
        title="Testing Entity">
        <field name="testingId" type="id-ne"/>
        <field name="testingTypeId" type="id-ne"/>
        <field name="testingName" type="name" enable-audit-log="true"/>
        <field name="description" type="description"/>
        <field name="comments" type="comment"/>
        <field name="testingSize" type="numeric"/>
        <field name="testingDate" type="date-time"/>
        <prim-key field="testingId"/>
        <relation type="one" fk-name="ENTITY_ENTY_TYP" rel-entity-name="TestingType">
            <key-map field-name="testingTypeId"/>
        </relation>
    </entity>
    <!-- =========================================================
     Testing entity type
    ========================================================= -->
    <entity entity-name="TestingType"
        package-name="org.ofbiz.entity.test"
        title="Testing Entity Type">
        <field name="testingTypeId" type="id-ne"/>
        <field name="description" type="description"/>
        <prim-key field="testingTypeId"/>
    </entity>
  <!-- =========================================================
    Used for testing views with pks.
    This simulates the Party->PartyGroup and Party->Person entity relationships.
  ========================================================= -->
    <entity entity-name="TestingSubtype" package-name="org.ofbiz.entity.test" title="Testing Subtype Entity">
        <field name="testingTypeId" type="id-ne" />
        <field name="subtypeDescription" type="description" />
        <prim-key field="testingTypeId" />
    </entity>
  <!-- =========================================================
    Used for testing views with pks
  ========================================================= -->
    <view-entity entity-name="TestingViewPks" package-name="org.ofbiz.entity.test" title="Testing And TestingSubtype View">
        <member-entity entity-alias="TST" entity-name="TestingType" />
        <member-entity entity-alias="TSTSUB" entity-name="TestingSubtype" />
        <alias-all entity-alias="TST" />
        <alias-all entity-alias="TSTSUB" />
        <view-link entity-alias="TST" rel-entity-alias="TSTSUB">
            <key-map field-name="testingTypeId" />
        </view-link>
    </view-entity>
  <!-- =========================================================
     An entity for testing the BLOB data type
   ========================================================== -->
    <entity entity-name="TestBlob"
        package-name="org.ofbiz.entity.test"
        title="Entity for testing the blob type (Deprecated)">
        <description>Deprecated - use TestFieldType instead</description>
        <field name="testBlobId" type="id-ne"/>
        <field name="testBlobField" type="blob"/>
         <prim-key field="testBlobId"/>
    </entity>
  <!-- =========================================================
     An entity for testing the field data types
   ========================================================== -->
    <entity entity-name="TestFieldType"
        package-name="org.ofbiz.entity.test"
        title="Entity for testing the field data types">
        <description>An entity for testing the field data types</description>
        <field name="testFieldTypeId" type="id-ne"/>
        <field name="blobField" type="blob"/>
        <field name="byteArrayField" type="byte-array"/>
        <field name="objectField" type="object"/>
        <field name="dateField" type="date"/>
        <field name="timeField" type="time"/>
        <field name="dateTimeField" type="date-time"/>
        <field name="fixedPointField" type="fixed-point"/>
        <field name="floatingPointField" type="floating-point"/>
        <field name="numericField" type="numeric"/>
        <field name="clobField" type="very-long"/>
        <prim-key field="testFieldTypeId"/>
    </entity>
  <!-- =========================================================
    Testing Item entity : testing line on a Testing entity
  ========================================================= -->
    <entity entity-name="TestingItem"
            package-name="org.ofbiz.entity.test"
            title="Testing Item">
        <field name="testingId" type="id-ne"/>
        <field name="testingSeqId" type="id-ne"/>
        <field name="testingHistory" type="very-long"/>
        <prim-key field="testingId"/>
        <prim-key field="testingSeqId"/>
        <relation type="one" fk-name="TESTING_IT_TEST" rel-entity-name="Testing">
            <key-map field-name="testingId"/>
        </relation>
    </entity>
  <!-- =========================================================
    Testing Node entity : hierarchy of nodes having
    'testing node member' as potential members
  ========================================================= -->
    <entity entity-name="TestingNode"
            package-name="org.ofbiz.entity.test"
            title="Testing Node">
        <field name="testingNodeId" type="id-ne"></field>
        <field name="primaryParentNodeId" type="id"></field>
        <field name="description" type="description"></field>
        <prim-key field="testingNodeId"/>
        <relation type="one" fk-name="TESTNG_NDE_PARNT" title="PrimaryParent" rel-entity-name="TestingNode">
            <key-map field-name="primaryParentNodeId" rel-field-name="testingNodeId"/>
        </relation>
        <relation type="many" title="PrimaryChild" rel-entity-name="TestingNode">
            <key-map field-name="testingNodeId" rel-field-name="primaryParentNodeId"/>
        </relation>
    </entity>
  <!-- =========================================================
    Testing Node member
    A testing member entity can belong to any testing node
  ========================================================= -->
    <entity entity-name="TestingNodeMember"
            package-name="org.ofbiz.entity.test"
            title="Testing Node Member">
      <field name="testingNodeId" type="id-ne"></field>
      <field name="testingId" type="id-ne"></field>
      <field name="fromDate" type="date-time"></field>
      <field name="thruDate" type="date-time"></field>
      <prim-key field="testingNodeId"/>
      <prim-key field="testingId"/>
      <prim-key field="fromDate"/>
      <relation type="one" fk-name="TESTING_NMBR_TEST" rel-entity-name="Testing">
        <key-map field-name="testingId"/>
      </relation>
      <relation type="one" fk-name="TEST_NMBR_NODE" rel-entity-name="TestingNode">
        <key-map field-name="testingNodeId"/>
      </relation>
    </entity>
  <!-- =========================================================
    View : a Testing Node with its member(s)
  ========================================================= -->
    <view-entity entity-name="TestingNodeAndMember"
            package-name="org.ofbiz.entity.test"
            title="TestingNode And TestingNodeMember View">
      <member-entity entity-alias="TN" entity-name="TestingNode"/>
      <member-entity entity-alias="TNM" entity-name="TestingNodeMember"/>
      <alias-all entity-alias="TN"/>
      <alias-all entity-alias="TNM"/>
      <view-link entity-alias="TN" rel-entity-alias="TNM">
        <key-map field-name="testingNodeId"/>
      </view-link>
      <relation type="one-nofk" rel-entity-name="TestingNodeMember">
        <key-map field-name="testingNodeId"/>
        <key-map field-name="testingId"/>
        <key-map field-name="fromDate"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="TestingNode">
        <key-map field-name="testingNodeId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="Testing">
        <key-map field-name="testingId"/>
      </relation>
    </view-entity>

    <!-- =========================================================
    The testing entity is a basic entity with a type
    ========================================================= -->
    <entity entity-name="TestingCrypto"
        package-name="org.ofbiz.entity.test"
        title="Testing Crypto Entity">
        <field name="testingCryptoId" type="id-ne"/>
        <field name="testingCryptoTypeId" type="id-ne"/>
        <field name="unencryptedValue" type="description"/>
        <field name="encryptedValue" type="description" encrypt="true"/>
        <field name="saltedEncryptedValue" type="description" encrypt="salt"/>
        <prim-key field="testingCryptoId"/>
    </entity>
    <view-entity entity-name="TestingCryptoRawView"
            package-name="org.ofbiz.entity.test"
            title="TestingCrypto Raw View">
      <member-entity entity-alias="TC" entity-name="TestingCrypto"/>
      <alias-all entity-alias="TC"/>
      <alias name="rawEncryptedValue">
        <complex-alias operator="+">
          <complex-alias-field entity-alias="TC" field="encryptedValue"/>
        </complex-alias>
      </alias>
      <alias name="rawSaltedEncryptedValue">
        <complex-alias operator="+">
          <complex-alias-field entity-alias="TC" field="saltedEncryptedValue"/>
        </complex-alias>
      </alias>
    </view-entity>
    <entity entity-name="TestingRemoveAll"
        package-name="org.ofbiz.entity.test"
        title="Testing Entity">
        <field name="testingRemoveAllId" type="id-ne"/>
        <field name="description" type="description"/>
        <prim-key field="testingRemoveAllId"/>
    </entity>
</entitymodel>
