ilscipio/scipio-erp

View on GitHub
framework/common/entitydef/entitymodel.xml

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file is subject to the terms and conditions defined in the
files 'LICENSE' and 'NOTICE', which are part of this source
code package.
-->

<entitymodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entitymodel.xsd">
  <!-- ========================================================= -->
  <!-- ======================== Defaults ======================= -->
  <!-- ========================================================= -->
    <title>Entity of an Apache OFBiz Component</title>
    <description>None</description>
    <version>1.0</version>

  <!-- ========================================================= -->
  <!-- ======================== Data Model ===================== -->
  <!-- The modules in this file are as follows:                  -->
  <!--  - org.ofbiz.common.datasource -->
  <!--  - org.ofbiz.common.email -->
  <!--  - org.ofbiz.common.enum -->
  <!--  - org.ofbiz.common.geo -->
  <!--  - org.ofbiz.common.keyword -->
  <!--  - org.ofbiz.common.language -->
  <!--  - org.ofbiz.common.method -->
  <!--  - org.ofbiz.common.note -->
  <!--  - org.ofbiz.common.period -->
  <!--  - org.ofbiz.common.status -->
  <!--  - org.ofbiz.common.uom -->
  <!--  - org.ofbiz.common.theme -->
  <!-- ========================================================= -->


  <!-- ========================================================= -->
  <!-- org.ofbiz.common.datasource -->
  <!-- ========================================================= -->

    <entity entity-name="DataSource"
            package-name="org.ofbiz.common.datasource"
            default-resource-name="CommonEntityLabels"
            title="Data Source">
      <field name="dataSourceId" type="id-ne"></field>
      <field name="dataSourceTypeId" type="id"></field>
      <field name="description" type="description"></field>
      <prim-key field="dataSourceId"/>
      <relation type="one" fk-name="DATA_SRC_TYP" rel-entity-name="DataSourceType">
        <key-map field-name="dataSourceTypeId"/>
      </relation>
    </entity>
    <entity entity-name="DataSourceType"
            package-name="org.ofbiz.common.datasource"
            title="Data Source Type">
      <field name="dataSourceTypeId" type="id"></field>
      <field name="description" type="description"></field>
      <prim-key field="dataSourceTypeId"/>
    </entity>

  <!-- ========================================================= -->
  <!-- org.ofbiz.common.email -->
  <!-- ========================================================= -->

    <entity entity-name="EmailTemplateSetting" package-name="org.ofbiz.common.email" title="Email Template Setting">
        <field name="emailTemplateSettingId" type="id-ne"></field>
        <field name="emailType" type="id-ne"></field>
        <field name="description" type="description"></field>
        <field name="bodyScreenLocation" type="long-varchar"><description>if empty defaults to a screen based on the emailType</description></field>
        <field name="xslfoAttachScreenLocation" type="long-varchar"><description>if specified is used to generate XSL:FO that is transformed to a PDF via Apache FOP and attached to the email</description></field>
        <field name="fromAddress" type="email"></field>
        <field name="ccAddress" type="email"></field>
        <field name="bccAddress" type="email"></field>
        <field name="subject" type="comment"></field>
        <field name="contentType" type="long-varchar"></field>
        <prim-key field="emailTemplateSettingId"/>
        <relation type="one" fk-name="EMAILSET_ENUM" rel-entity-name="Enumeration">
            <key-map field-name="emailType" rel-field-name="enumId"/>
        </relation>
    </entity>

  <!-- ========================================================= -->
  <!-- org.ofbiz.common.enum -->
  <!-- ========================================================= -->

    <entity entity-name="Enumeration"
            package-name="org.ofbiz.common.enum"
            default-resource-name="CommonEntityLabels"
            title="Enumeration">
      <field name="enumId" type="id-ne"></field>
      <field name="enumTypeId" type="id-ne"></field>
      <field name="enumCode" type="short-varchar"></field>
      <field name="sequenceId" type="id"></field>
      <field name="description" type="description"></field>
      <prim-key field="enumId"/>
      <relation type="one" fk-name="ENUM_TO_TYPE" rel-entity-name="EnumerationType">
        <key-map field-name="enumTypeId"/>
      </relation>
    </entity>
    <entity entity-name="EnumerationType"
            package-name="org.ofbiz.common.enum"
            default-resource-name="CommonEntityLabels"
            title="Enumeration Type">
      <field name="enumTypeId" type="id-ne"></field>
      <field name="parentTypeId" type="id"></field>
      <field name="hasTable" type="indicator"></field>
      <field name="description" type="description"></field>
      <prim-key field="enumTypeId"/>
      <relation type="one" fk-name="ENUM_TYPE_PARENT" title="Parent" rel-entity-name="EnumerationType">
        <key-map field-name="parentTypeId" rel-field-name="enumTypeId"/>
      </relation>
    </entity>

    <view-entity entity-name="EnumTypeChildAndEnum" package-name="org.ofbiz.common.enum">
        <member-entity entity-alias="PARENT" entity-name="EnumerationType"/>
        <member-entity entity-alias="CHILD" entity-name="EnumerationType"/>
        <member-entity entity-alias="ENUM" entity-name="Enumeration"/>
        <alias-all entity-alias="PARENT" prefix="parent"/>
        <alias-all entity-alias="CHILD" prefix="child">
            <exclude field="parentTypeId"/>
        </alias-all>
        <alias-all entity-alias="ENUM"/>
        <view-link entity-alias="PARENT" rel-entity-alias="CHILD">
            <key-map field-name="enumTypeId" rel-field-name="parentTypeId"/>
        </view-link>
        <view-link entity-alias="CHILD" rel-entity-alias="ENUM">
            <key-map field-name="enumTypeId"/>
        </view-link>
    </view-entity>


  <!-- ========================================================= -->
  <!-- org.ofbiz.common.geo -->
  <!-- ========================================================= -->

    <entity entity-name="CountryCapital"
            package-name="org.ofbiz.common.geo"
            dependent-on="CountryCode"
            title="Country Capital">
      <field name="countryCode" type="id-ne"></field>
      <field name="countryCapital" type="description"></field>
      <prim-key field="countryCode"/>
      <relation type="one" fk-name="CNTRY_CAP_TO_CODE" rel-entity-name="CountryCode">
        <key-map field-name="countryCode"/>
      </relation>
    </entity>
    <entity entity-name="CountryCode"
            package-name="org.ofbiz.common.geo"
            title="ISO Country Code">
      <field name="countryCode" type="id-ne"></field>
      <field name="countryAbbr" type="short-varchar"></field>
      <field name="countryNumber" type="short-varchar"></field>
      <field name="countryName" type="description"></field>
      <prim-key field="countryCode"/>
    </entity>
    <entity entity-name="CountryTeleCode"
            package-name="org.ofbiz.common.geo"
            dependent-on="CountryCode"
            title="Telephone Country Code">
      <field name="countryCode" type="id-ne"></field>
      <field name="teleCode" type="short-varchar"></field>
      <prim-key field="countryCode"/>
      <relation type="one" fk-name="CNTRY_TELE_TO_CODE" rel-entity-name="CountryCode">
        <key-map field-name="countryCode"/>
      </relation>
    </entity>
    <view-entity entity-name="CountryTeleCodeAndName" package-name="org.ofbiz.common.geo"
        title="Telephone country code and country name">
        <member-entity entity-alias="CC" entity-name="CountryCode"/>
        <member-entity entity-alias="CT" entity-name="CountryTeleCode"/>
        <alias entity-alias="CT" name="teleCode"/>
        <alias entity-alias="CC" name="countryCode" prim-key="countryCodeId"/>
        <alias entity-alias="CC" name="countryName"/>
        <view-link entity-alias="CC" rel-entity-alias="CT">
            <key-map field-name="countryCode"/>
        </view-link>
    </view-entity>
    <entity entity-name="CountryAddressFormat" package-name="org.ofbiz.common.geo" default-resource-name="CommonEntityLabels"
        title="">
        <field name="geoId" type="id-ne"></field>
        <field name="geoAssocTypeId" type="id"></field>
        <field name="requireStateProvinceId" type="id"></field>
        <field name="requirePostalCode" type="indicator"></field>
        <field name="postalCodeRegex" type="long-varchar"></field>
        <field name="hasPostalCodeExt" type="indicator"></field>
        <field name="requirePostalCodeExt" type="indicator"></field>
        <field name="addressFormat" type="long-varchar"></field>
        <prim-key field="geoId"/>
        <relation type="one" rel-entity-name="Geo" fk-name="CNY_ADR_GEO">
            <key-map field-name="geoId"/>
        </relation>
        <relation type="one" fk-name="CNY_ADR_GEO_TYPE" rel-entity-name="GeoAssocType" >
            <key-map field-name="geoAssocTypeId"/>
        </relation>
    </entity>
    <entity entity-name="Geo" package-name="org.ofbiz.common.geo"
            default-resource-name="CommonEntityLabels"
            title="Geographic Boundary">
        <field name="geoId" type="id-ne"></field>
        <field name="geoTypeId" type="id"></field>
        <field name="geoName" type="name"></field>
        <field name="geoCode" type="short-varchar"></field>
        <field name="geoSecCode" type="short-varchar"></field>
        <field name="abbreviation" type="short-varchar"></field>
        <field name="wellKnownText" type="very-long"></field>
        <prim-key field="geoId" />
        <relation type="one" fk-name="GEO_TO_TYPE" rel-entity-name="GeoType">
            <key-map field-name="geoTypeId" />
        </relation>
    </entity>
    <entity entity-name="GeoAssoc" package-name="org.ofbiz.common.geo"
            title="Geographic Boundary Association">
        <field name="geoId" type="id-ne">
            <description>The enclosed geo</description>
        </field>
        <field name="geoIdTo" type="id-ne">
            <description>The enclosing geo</description>
        </field>
        <field name="geoAssocTypeId" type="id"></field>
        <prim-key field="geoId" />
        <prim-key field="geoIdTo" />
        <relation type="one" fk-name="GEO_ASSC_TO_MAIN" title="Main" rel-entity-name="Geo">
            <key-map field-name="geoId" />
        </relation>
        <relation type="one" fk-name="GEO_ASSC_TO_ASSC" title="Assoc" rel-entity-name="Geo">
            <key-map field-name="geoIdTo" rel-field-name="geoId" />
        </relation>
        <relation type="one" fk-name="GEO_ASSC_TO_TYPE" rel-entity-name="GeoAssocType">
            <key-map field-name="geoAssocTypeId" />
        </relation>
    </entity>
    <view-entity entity-name="GeoAssocAndGeoFrom" package-name="org.ofbiz.common.geo">
        <member-entity entity-alias="GA" entity-name="GeoAssoc"/>
        <member-entity entity-alias="GFR" entity-name="Geo"/>
        <alias-all entity-alias="GFR"/>
        <alias entity-alias="GA" name="geoIdTo"/>
        <alias entity-alias="GA" name="geoAssocTypeId"/>
        <view-link entity-alias="GA" rel-entity-alias="GFR">
            <key-map field-name="geoId"/>
        </view-link>
    </view-entity>
    <view-entity entity-name="GeoAssocAndGeoTo" package-name="org.ofbiz.common.geo">
        <member-entity entity-alias="GA" entity-name="GeoAssoc"/>
        <member-entity entity-alias="GTO" entity-name="Geo"/>
        <alias-all entity-alias="GTO"/>
        <alias entity-alias="GA" name="geoIdFrom" field="geoId"/>
        <alias entity-alias="GA" name="geoAssocTypeId"/>
        <view-link entity-alias="GA" rel-entity-alias="GTO">
            <key-map field-name="geoIdTo" rel-field-name="geoId"/>
        </view-link>
    </view-entity>
    <view-entity entity-name="GeoAssocAndGeoToWithState" package-name="org.ofbiz.common.geo">
        <member-entity entity-alias="GA" entity-name="GeoAssoc"/>
        <member-entity entity-alias="GTO" entity-name="Geo"/>
        <member-entity entity-alias="GWS" entity-name="CountryAddressFormat"/>
        <alias-all entity-alias="GTO"/>
        <alias entity-alias="GA" name="geoIdFrom" field="geoId"/>
        <alias entity-alias="GA" name="geoAssocTypeId"/>
        <view-link entity-alias="GA" rel-entity-alias="GTO">
            <key-map field-name="geoIdTo" rel-field-name="geoId"/>
        </view-link>
        <view-link entity-alias="GA" rel-entity-alias="GWS">
            <key-map field-name="geoId"/>
        </view-link>
    </view-entity>
    <entity entity-name="GeoAssocType" package-name="org.ofbiz.common.geo"
        title="Geographic Boundary Association" default-resource-name="CommonEntityLabels">
      <field name="geoAssocTypeId" type="id-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="geoAssocTypeId"/>
    </entity>
    <entity entity-name="GeoPoint" package-name="org.ofbiz.common.geo" default-resource-name="CommonEntityLabels"
        title="Geographic Location">
        <field name="geoPointId" type="id-ne"></field>
        <field name="geoPointTypeEnumId" type="id"/>
        <field name="description" type="description"></field>
        <field name="dataSourceId" type="id"></field>
        <field name="latitude" type="short-varchar" not-null="true"></field>
        <field name="longitude" type="short-varchar" not-null="true"></field>
        <field name="elevation" type="fixed-point"></field>
        <field name="elevationUomId" type="id"><description>UOM for elevation (feet, meters, etc.)</description></field>
        <field name="information" type="comment"><description>To enter any related information</description></field>
        <prim-key field="geoPointId"/>
        <relation type="one" fk-name="GEOPOINT_DTSRC" rel-entity-name="DataSource">
            <key-map field-name="dataSourceId"/>
        </relation>
        <relation type="one" fk-name="GEOPOINT_TYPE" title="GeoPointType" rel-entity-name="Enumeration">
            <key-map field-name="geoPointTypeEnumId" rel-field-name="enumId"/>
        </relation>
        <relation type="one" fk-name="GPT_ELEV_UOM" title="Elevation" rel-entity-name="Uom">
            <key-map field-name="elevationUomId" rel-field-name="uomId"/>
        </relation>
    </entity>
    <entity entity-name="GeoType" package-name="org.ofbiz.common.geo" default-resource-name="CommonEntityLabels"
        title="Geographic Boundary Type">
      <field name="geoTypeId" type="id-ne"></field>
      <field name="parentTypeId" type="id-ne"></field>
      <field name="hasTable" type="indicator"></field>
      <field name="description" type="description"></field>
      <prim-key field="geoTypeId"/>
      <relation type="one" fk-name="GEO_TYPE_PARENT" title="Parent" rel-entity-name="GeoType">
        <key-map field-name="parentTypeId" rel-field-name="geoTypeId"/>
      </relation>
    </entity>
    <extend-entity entity-name="Visit">
        <field name="clientIpStateProvGeoId" type="id"></field>
        <field name="clientIpCountryGeoId" type="id"></field>
    </extend-entity>
 
  <!-- ========================================================= -->
  <!-- org.ofbiz.common.keyword -->
  <!-- ========================================================= -->

    <entity entity-name="KeywordThesaurus"
            package-name="org.ofbiz.common.keyword">
      <field name="enteredKeyword" type="long-varchar"></field>
      <field name="alternateKeyword" type="long-varchar"></field>
      <field name="relationshipEnumId" type="id"></field>
      <prim-key field="enteredKeyword"/>
      <prim-key field="alternateKeyword"/>
      <relation type="one" fk-name="KW_THRS_RLENM" title="Relationship" rel-entity-name="Enumeration">
        <key-map field-name="relationshipEnumId" rel-field-name="enumId"/>
      </relation>
    </entity>

  <!-- ========================================================= -->
  <!-- org.ofbiz.common.language -->
  <!-- ========================================================= -->

    <entity entity-name="StandardLanguage"
            package-name="org.ofbiz.common.language">
      <field name="standardLanguageId" type="id-ne"></field>
      <field name="langCode3t" type="very-short"></field>
      <field name="langCode3b" type="very-short"></field>
      <field name="langCode2" type="very-short"></field>
      <field name="langName" type="short-varchar"></field>
      <field name="langFamily" type="short-varchar"></field>
      <field name="langCharset" type="short-varchar"></field>
      <prim-key field="standardLanguageId"/>
    </entity>

    <!-- ========================================================= -->
    <!-- org.ofbiz.common.method -->
    <!-- ========================================================= -->

    <entity entity-name="CustomMethod"
        package-name="org.ofbiz.common.method"
        default-resource-name="CommonEntityLabels"
        title="Custom Method">
        <field name="customMethodId" type="id-ne"></field>
        <field name="customMethodTypeId" type="id"></field>
        <field name="customMethodName" type="long-varchar"></field>
        <field name="description" type="description"></field>
        <prim-key field="customMethodId"/>
        <relation type="one" fk-name="CME_TO_TYPE" rel-entity-name="CustomMethodType">
            <key-map field-name="customMethodTypeId"/>
        </relation>
    </entity>
    <entity entity-name="CustomMethodType"
        package-name="org.ofbiz.common.method"
        title="Custom Method Type">
        <field name="customMethodTypeId" type="id-ne"></field>
        <field name="parentTypeId" type="id-ne"></field>
        <field name="hasTable" type="indicator"></field>
        <field name="description" type="description"></field>
        <prim-key field="customMethodTypeId"/>
        <relation type="one" fk-name="CME_TYPE_PARENT" title="Parent" rel-entity-name="CustomMethodType">
            <key-map field-name="parentTypeId" rel-field-name="customMethodTypeId"/>
        </relation>
    </entity>

  <!-- ========================================================= -->
  <!-- org.ofbiz.common.note -->
  <!-- ========================================================= -->

    <entity entity-name="NoteData"
            package-name="org.ofbiz.common.note"
            title="Note Data">
      <field name="noteId" type="id-ne"></field>
      <field name="noteName" type="name"></field>
      <field name="noteInfo" type="very-long"></field>
      <field name="noteDateTime" type="date-time"></field>
      <prim-key field="noteId"/>
    </entity>

  <!-- ========================================================= -->
  <!-- org.ofbiz.common.period -->
  <!-- ========================================================= -->

    <entity entity-name="CustomTimePeriod"
            package-name="org.ofbiz.common.period"
            title="Custom Time Period">
      <field name="customTimePeriodId" type="id-ne"></field>
      <field name="parentPeriodId" type="id"></field>
      <field name="periodTypeId" type="id"></field>
      <field name="periodNum" type="numeric"></field>
      <field name="periodName" type="name"></field>
      <field name="fromDate" type="date-time"></field>
      <field name="thruDate" type="date-time"></field>
      <field name="isClosed" type="indicator"></field>
      <prim-key field="customTimePeriodId"/>
      <relation type="one" fk-name="ORG_PRD_PARPER" title="Parent" rel-entity-name="CustomTimePeriod">
        <key-map field-name="parentPeriodId" rel-field-name="customTimePeriodId"/>
      </relation>
      <relation type="one" fk-name="ORG_PRD_PERTYP" rel-entity-name="PeriodType">
        <key-map field-name="periodTypeId"/>
      </relation>
    </entity>
    <entity entity-name="PeriodType"
            package-name="org.ofbiz.common.period"
            title="Period Type">
      <field name="periodTypeId" type="id-ne"></field>
      <field name="description" type="description"></field>
      <field name="periodLength" type="numeric"></field>
      <field name="uomId" type="id"></field>
      <prim-key field="periodTypeId"/>
      <relation type="one" fk-name="PER_TYPE_UOM" rel-entity-name="Uom">
        <key-map field-name="uomId"/>
      </relation>
    </entity>

  <!-- ========================================================= -->
  <!-- org.ofbiz.common.status -->
  <!-- ========================================================= -->

    <entity entity-name="StatusItem"
            package-name="org.ofbiz.common.status"
            default-resource-name="CommonEntityLabels"
            title="Status">
      <field name="statusId" type="id-ne"></field>
      <field name="statusTypeId" type="id-ne"></field>
      <field name="statusCode" type="short-varchar"></field>
      <field name="sequenceId" type="id"></field>
      <field name="description" type="description"></field>
      <prim-key field="statusId"/>
      <relation type="one" fk-name="STATUS_TO_TYPE" rel-entity-name="StatusType">
        <key-map field-name="statusTypeId"/>
      </relation>
    </entity>
    <entity entity-name="StatusType"
            package-name="org.ofbiz.common.status"
            default-resource-name="CommonEntityLabels"
            title="Status Type">
      <field name="statusTypeId" type="id-ne"></field>
      <field name="parentTypeId" type="id"></field>
      <field name="hasTable" type="indicator"></field>
      <field name="description" type="description"></field>
      <prim-key field="statusTypeId"/>
      <relation type="one" fk-name="STATUS_TYPE_PARENT" title="Parent" rel-entity-name="StatusType">
        <key-map field-name="parentTypeId" rel-field-name="statusTypeId"/>
      </relation>
    </entity>
    <entity entity-name="StatusValidChange"
            package-name="org.ofbiz.common.status"
            default-resource-name="CommonEntityLabels"
            title="Status Valid Change">
      <field name="statusId" type="id-ne"></field>
      <field name="statusIdTo" type="id-ne"></field>
      <field name="conditionExpression" type="long-varchar"></field>
      <field name="transitionName" type="name"></field>
      <prim-key field="statusId"/>
      <prim-key field="statusIdTo"/>
      <relation type="one" fk-name="STATUS_CHG_MAIN" title="Main" rel-entity-name="StatusItem">
        <key-map field-name="statusId"/>
      </relation>
      <relation type="one" fk-name="STATUS_CHG_TO" title="To" rel-entity-name="StatusItem">
        <key-map field-name="statusIdTo" rel-field-name="statusId"/>
      </relation>
    </entity>
    <view-entity entity-name="StatusValidChangeToDetail"
        package-name="org.ofbiz.common.status"
        title="Status Valid Change To Detail View">
        <member-entity entity-alias="SVC" entity-name="StatusValidChange"/>
        <member-entity entity-alias="SI" entity-name="StatusItem"/>
        <alias-all entity-alias="SVC"/>
        <alias-all entity-alias="SI"/>
        <view-link entity-alias="SVC" rel-entity-alias="SI">
            <key-map field-name="statusIdTo" rel-field-name="statusId"/>
        </view-link>
        <relation type="one" rel-entity-name="StatusValidChange">
            <key-map field-name="statusId"/>
            <key-map field-name="statusIdTo"/>
        </relation>
        <relation type="one" rel-entity-name="StatusItem">
            <key-map field-name="statusId"/>
        </relation>
        <entity-condition>
            <order-by field-name="sequenceId"/>
        </entity-condition>
    </view-entity>

  <!-- ========================================================= -->
  <!-- org.ofbiz.common.uom -->
  <!-- ========================================================= -->

    <entity entity-name="Uom"
            package-name="org.ofbiz.common.uom"
            default-resource-name="CommonEntityLabels"
            title="Unit Of Measure">
      <field name="uomId" type="id-ne"></field>
      <field name="uomTypeId" type="id"></field>
      <field name="abbreviation" type="short-varchar"></field>
      <field name="numericCode" type="numeric"></field>
      <field name="description" type="description"></field>
      <prim-key field="uomId"/>
      <relation type="one" fk-name="UOM_TO_TYPE" rel-entity-name="UomType">
        <key-map field-name="uomTypeId"/>
      </relation>
    </entity>
    <view-entity entity-name="UomAndGroup"
            package-name="org.ofbiz.common.uom"
            title="Unit Of Measure and Group/Type View">
        <member-entity entity-alias="UOMGP" entity-name="UomGroup"/>
        <member-entity entity-alias="UOM" entity-name="Uom"/>
        <member-entity entity-alias="UOMTP" entity-name="UomType"/>
        <alias-all entity-alias="UOMGP"/>
        <alias-all entity-alias="UOM"/>
        <alias-all entity-alias="UOMTP" prefix="type"/>
        <view-link entity-alias="UOMGP" rel-entity-alias="UOM">
            <key-map field-name="uomId"/>
        </view-link>
        <view-link entity-alias="UOM" rel-entity-alias="UOMTP">
            <key-map field-name="uomTypeId"/>
        </view-link>
    </view-entity>
    <view-entity entity-name="UomAndType"
            package-name="org.ofbiz.common.uom"
            title="Unit Of Measure and Type View">
        <member-entity entity-alias="UOM" entity-name="Uom"/>
        <member-entity entity-alias="UOMTP" entity-name="UomType"/>
        <alias-all entity-alias="UOM"/>
        <alias-all entity-alias="UOMTP" prefix="type"/>
        <view-link entity-alias="UOM" rel-entity-alias="UOMTP">
            <key-map field-name="uomTypeId"/>
        </view-link>
    </view-entity>
    <entity entity-name="UomConversion"
            package-name="org.ofbiz.common.uom"
            title="Unit Of Measure Conversion Type">
      <field name="uomId" type="id-ne"></field>
      <field name="uomIdTo" type="id-ne"></field>
      <field name="conversionFactor" type="floating-point"></field>
      <field name="customMethodId" type="id-ne"></field>
      <field name="decimalScale" type="numeric"></field>
      <field name="roundingMode" type="id"></field>
      <prim-key field="uomId"/>
      <prim-key field="uomIdTo"/>
      <relation type="one" fk-name="UOM_CONV_MAIN" title="Main" rel-entity-name="Uom">
        <key-map field-name="uomId"/>
      </relation>
      <relation type="one" fk-name="UOM_CONV_TO" title="ConvTo" rel-entity-name="Uom">
        <key-map field-name="uomIdTo" rel-field-name="uomId"/>
      </relation>
      <relation type="one" fk-name="UOM_CUSTOM_METHOD" title="uomCustomMethod" rel-entity-name="CustomMethod">
        <key-map field-name="customMethodId" rel-field-name="customMethodId"/>
      </relation>
    </entity>
    <entity entity-name="UomConversionDated"
            package-name="org.ofbiz.common.uom"
            title="Unit Of Measure Conversion Entity for those Units of Measure whose conversion values change over time (ie, currencies)">
      <field name="uomId" type="id-ne"></field>
      <field name="uomIdTo" type="id-ne"></field>
      <field name="fromDate" type="date-time"></field>
      <field name="thruDate" type="date-time"></field>
      <field name="conversionFactor" type="floating-point"></field>
      <field name="customMethodId" type="id-ne"></field>
      <field name="decimalScale" type="numeric"></field>
      <field name="roundingMode" type="id"></field>
      <field name="purposeEnumId" type="id"></field>
      <prim-key field="uomId"/>
      <prim-key field="uomIdTo"/>
      <prim-key field="fromDate"/>
      <relation type="one" fk-name="DATE_UOM_CONV_MAIN" title="DatedMain" rel-entity-name="Uom">
        <key-map field-name="uomId"/>
      </relation>
      <relation type="one" fk-name="DATE_UOM_CONV_TO" title="DatedConvTo" rel-entity-name="Uom">
        <key-map field-name="uomIdTo" rel-field-name="uomId"/>
      </relation>
      <relation type="one" fk-name="UOMD_CUSTOM_METHOD" title="uomCustomMethod" rel-entity-name="CustomMethod">
        <key-map field-name="customMethodId" rel-field-name="customMethodId"/>
      </relation>
      <relation type="one" fk-name="UOMD_PURPOSE_ENUM" title="Purpose" rel-entity-name="Enumeration">
        <key-map field-name="purposeEnumId" rel-field-name="enumId"/>
      </relation>
    </entity>
    <entity entity-name="UomGroup"
            package-name="org.ofbiz.common.uom"
            default-resource-name="CommonEntityLabels"
            title="Unit Of Measure Group">
      <field name="uomGroupId" type="id-ne"></field>
      <field name="uomId" type="id-ne"></field>
      <prim-key field="uomGroupId"/>
      <prim-key field="uomId"/>
      <relation type="one" fk-name="UOM_GROUP_UOM" rel-entity-name="Uom">
        <key-map field-name="uomId"/>
      </relation>
    </entity>
    <entity entity-name="UomType"
            package-name="org.ofbiz.common.uom"
            default-resource-name="CommonEntityLabels"
            title="Unit Of Measure Type">
      <field name="uomTypeId" type="id-ne"></field>
      <field name="parentTypeId" type="id-ne"></field>
      <field name="hasTable" type="indicator"></field>
      <field name="description" type="description"></field>
      <prim-key field="uomTypeId"/>
      <relation type="one" fk-name="UOM_TYPE_PARENT" title="Parent" rel-entity-name="UomType">
        <key-map field-name="parentTypeId" rel-field-name="uomTypeId"/>
      </relation>
    </entity>

  <!-- ========================================================= -->
  <!-- org.ofbiz.common.user -->
  <!-- ========================================================= -->

    <entity entity-name="UserPreference"
            package-name="org.ofbiz.common.user"
            title="Application preferences for a given userLogin.">
      <description>The UserPreference entity contains one entry per preference per
          userLogin. User preferences are stored as key/value pairs (userPrefTypeId/userPrefValue).
          All values are stored as strings. Value strings can be converted to
          other data types by specifying a java data type in the userPrefDataType field.
      </description>
      <field name="userLoginId" type="id-vlong-ne"></field>
      <field name="userPrefTypeId" type="id-long-ne"><description>A unique identifier for this preference</description></field>
      <field name="userPrefGroupTypeId" type="id-long"><description>Used to assemble groups of preferences</description></field>
      <field name="userPrefValue" type="value"><description>Contains the value of this preference</description></field>
      <field name="userPrefDataType" type="id-long"><description>The java data type of this preference (empty = java.lang.String)</description></field>
      <prim-key field="userLoginId"/>
      <prim-key field="userPrefTypeId"/>
      <relation type="one-nofk" fk-name="UP_USER_LOGIN" rel-entity-name="UserLogin">
        <key-map field-name="userLoginId"/>
      </relation>
      <relation type="one" fk-name="UP_USER_GROUP_TYPE" rel-entity-name="UserPrefGroupType">
        <key-map field-name="userPrefGroupTypeId"/>
      </relation>
    </entity>

    <entity entity-name="UserPrefGroupType"
            package-name="org.ofbiz.common.user"
            title="Defines a group of User Preferences">
      <description>The UserPrefGroupType entity contains one entry per preference
          group type.
      </description>
      <field name="userPrefGroupTypeId" type="id-long-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="userPrefGroupTypeId"/>
    </entity>

    <!-- ========================================================= -->
    <!-- org.ofbiz.common.screen -->
    <!-- ========================================================= -->

    <entity entity-name="CustomScreen"
        package-name="org.ofbiz.common.screen"
        default-resource-name="CommonEntityLabels"
        title="Custom Screen">
        <field name="customScreenId" type="id"/>
        <field name="customScreenTypeId" type="id"/>
        <field name="customScreenName" type="long-varchar"/>
        <field name="customScreenLocation" type="long-varchar"/>
        <field name="description" type="description"/>
        <prim-key field="customScreenId"/>
        <relation type="one" fk-name="CSCR_TO_TYPE" rel-entity-name="CustomScreenType">
            <key-map field-name="customScreenTypeId"/>
        </relation>
    </entity>
    <entity entity-name="CustomScreenType"
        package-name="org.ofbiz.common.screen"
        title="Custom Screen Type">
        <field name="customScreenTypeId" type="id"/>
        <field name="parentTypeId" type="id"/>
        <field name="hasTable" type="indicator"/>
        <field name="description" type="description"/>
        <prim-key field="customScreenTypeId"/>
        <relation type="many" fk-name="CSCR_TYPE_CHILD" title="Child" rel-entity-name="CustomScreenType">
            <key-map field-name="customScreenTypeId" rel-field-name="parentTypeId"/>
        </relation>
    </entity>

    <!-- ============================ -->
    <!-- org.ofbiz.common.theme -->
    <!-- ============================ -->

    <entity entity-name="VisualThemeSet"
            package-name="org.ofbiz.common.theme"
            title="Defines a set of Visual Themes">
      <description>Groups toghether Visual Themes that can be used for one (or a set of) application.</description>
      <field name="visualThemeSetId" type="id-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="visualThemeSetId"/>
    </entity>

    <entity entity-name="VisualTheme"
            package-name="org.ofbiz.common.theme"
            default-resource-name="CommonEntityLabels"
            title="Defines a Visual Theme">
      <description>The VisualTheme entity contains one entry per visual theme.</description>
      <field name="visualThemeId" type="id-ne"></field>
      <field name="visualThemeSetId" type="id"></field>
      <field name="description" type="description"></field>
      <prim-key field="visualThemeId"/>
      <relation type="one" fk-name="VT_THEME_SET" rel-entity-name="VisualThemeSet">
        <key-map field-name="visualThemeSetId"/>
      </relation>
    </entity>

    <entity entity-name="VisualThemeResource"
            package-name="org.ofbiz.common.theme"
            title="Contains All Visual Theme Resources">
      <description>The VisualThemeResource entity contains visual theme
          resources. Each visual theme can have any number of resources.</description>
      <field name="visualThemeId" type="id-ne"></field>
      <field name="resourceTypeEnumId" type="id-ne"></field>
      <field name="sequenceId" type="id-ne"><description>Controls the loading order of duplicate resource types</description></field>
      <field name="resourceValue" type="value"><description>Contains the resource value</description></field>
      <prim-key field="visualThemeId"/>
      <prim-key field="resourceTypeEnumId"/>
      <prim-key field="sequenceId"/>
      <relation type="one" fk-name="VT_RES_THEME" rel-entity-name="VisualTheme">
          <key-map field-name="visualThemeId"/>
      </relation>
      <relation type="one" fk-name="VT_RES_TYPE_ENUM" rel-entity-name="Enumeration">
          <key-map field-name="resourceTypeEnumId" rel-field-name="enumId"/>
      </relation>
    </entity>

    <!-- ============================ -->
    <!-- org.ofbiz.common.portal -->
    <!-- ============================ -->

    <entity entity-name="PortalPortlet" package-name="org.ofbiz.common.portal" title="Defines a Portlet to be used in Portals">
        <field name="portalPortletId" type="id-ne"></field>
        <field name="portletName" type="name"></field>
        <field name="screenName" type="long-varchar"></field>
        <field name="screenLocation" type="long-varchar"></field>
        <field name="editFormName" type="long-varchar"></field>
        <field name="editFormLocation" type="long-varchar"></field>
        <field name="description" type="description"></field>
        <field name="screenshot" type="url"></field>
        <field name="securityServiceName" type="long-varchar"><description>The service named here is used to see if current user can see the portlet on the list of available portlets; the screen that the portlet calls should also call this service to check permission and not render; the service named here must implement the "permissionInterface" service just like services used for service permissions</description></field>
        <field name="securityMainAction" type="short-varchar"><description>The main action which can be done with this portlet, possible values: CREATE UPDATE VIEW DELETE</description></field>
        <prim-key field="portalPortletId"/>
    </entity>
    <entity entity-name="PortletCategory" package-name="org.ofbiz.common.portal" title="Portlet Category">
      <field name="portletCategoryId" type="id-ne"/>
      <field name="description" type="description"/>
      <prim-key field="portletCategoryId"/>
    </entity>
    <entity entity-name="PortletPortletCategory" package-name="org.ofbiz.common.portal" title="Defines Portlets included into Categories">
      <field name="portalPortletId" type="id-ne"/>
      <field name="portletCategoryId" type="id-ne"/>
      <prim-key field="portalPortletId"/>
      <prim-key field="portletCategoryId"/>
      <relation type="one" fk-name="PPTLTCAT_PTPL" rel-entity-name="PortalPortlet">
        <key-map field-name="portalPortletId"/>
      </relation>
      <relation type="one" fk-name="PPTLTCAT_PTLTCAT" rel-entity-name="PortletCategory">
        <key-map field-name="portletCategoryId"/>
      </relation>
    </entity>
    <entity entity-name="PortalPage" package-name="org.ofbiz.common.portal" title="Defines a Portal Page"
        default-resource-name="CommonPortalEntityLabels">
        <field name="portalPageId" type="id-ne"></field>
        <field name="portalPageName" type="name"></field>
        <field name="description" type="description"></field>
        <!-- defined in an extend in content component to avoid dependencies between common and content
        <field name="helpContentId" type="id"><description>Used to give contentId which will be shown when help on this page will be called</description></field>
         -->
        <field name="ownerUserLoginId" type="id-vlong-ne"></field>
        <field name="originalPortalPageId" type="id"><description>The system portal page this page is derived from</description></field>
        <field name="parentPortalPageId" type="id"><description>the parent this page is belonging to, normally the startpage of the portal page group</description></field>
        <field name="sequenceNum" type="numeric"></field>
        <field name="securityGroupId" type="id"></field>
        <prim-key field="portalPageId"/>
        <!-- defined in an extend in content component to avoid dependencies between common and content
        <relation type="one" fk-name="PORTPAL_HELP_CONTENT" rel-entity-name="Content">
          <key-map field-name="helpContentId" rel-field-name="contentId"/>
        </relation>
        -->
        <relation type="one" fk-name="PortPage_PARENT" title="Parent" rel-entity-name="PortalPage">
          <key-map field-name="parentPortalPageId" rel-field-name="portalPageId"/>
        </relation>
        <relation type="one" fk-name="PORTPAGE_SECGRP" rel-entity-name="SecurityGroup">
          <key-map field-name="securityGroupId" rel-field-name="groupId"/>
        </relation>
    </entity>
  <view-entity entity-name="PortalPageAndUserLogin" package-name="org.ofbiz.common.portal"
    title="PortalPage accessible via security group to a userLogin">
    <member-entity entity-alias="PP" entity-name="PortalPage"/>
    <member-entity entity-alias="UG" entity-name="UserLoginSecurityGroup"/>
    <alias entity-alias="PP" name="portalPageId"/>
    <alias entity-alias="PP" name="securityGroupId"/>
    <alias entity-alias="PP" name="parentPortalPageId"/>
    <alias entity-alias="UG" name="userLoginId"/>
    <alias entity-alias="UG" name="fromDate"/>
    <alias entity-alias="UG" name="thruDate"/>
    <view-link entity-alias="PP" rel-entity-alias="UG">
      <key-map field-name="securityGroupId" rel-field-name="groupId"/>
    </view-link>
  </view-entity>
  <entity entity-name="PortalPageColumn" package-name="org.ofbiz.common.portal" title="Defines a Portal Page">
        <field name="portalPageId" type="id-ne"></field>
        <field name="columnSeqId" type="id-ne"></field>
        <field name="columnWidthPixels" type="numeric"></field>
        <field name="columnWidthPercentage" type="numeric"></field>
        <prim-key field="portalPageId"/>
        <prim-key field="columnSeqId"/>
        <relation type="one" fk-name="PRTL_PGCOL_PAGE" rel-entity-name="PortalPage">
            <key-map field-name="portalPageId"/>
        </relation>
    </entity>
    <entity entity-name="PortalPagePortlet" package-name="org.ofbiz.common.portal" title="Defines Portlets included into Portal Pages">
        <field name="portalPageId" type="id-ne"></field>
        <field name="portalPortletId" type="id-ne"></field>
        <field name="portletSeqId" type="id-ne"><description>Identify the portalPortlet instance in case more copy of the same portalPortlet are present in the same portalPage</description></field>
        <field name="columnSeqId" type="id-ne"></field>
        <field name="sequenceNum" type="numeric"></field>
        <prim-key field="portalPageId"/>
        <prim-key field="portalPortletId"/>
        <prim-key field="portletSeqId"/>
        <relation type="one" fk-name="PRTL_PGPTLT_PAGE" rel-entity-name="PortalPage">
            <key-map field-name="portalPageId"/>
        </relation>
        <relation type="one" fk-name="PRTL_PGPTLT_PTLT" rel-entity-name="PortalPortlet">
            <key-map field-name="portalPortletId"/>
        </relation>
        <relation type="one-nofk" rel-entity-name="PortalPageColumn">
            <key-map field-name="portalPageId"/>
            <key-map field-name="columnSeqId"/>
        </relation>
    </entity>
    <view-entity entity-name="PortalPagePortletView" package-name="org.ofbiz.common.portal" title="View entity to have all Portlet information with portalPageId ">
        <member-entity entity-alias="PPGPTLT" entity-name="PortalPagePortlet"/>
        <member-entity entity-alias="PTLT" entity-name="PortalPortlet"/>
        <alias-all entity-alias="PPGPTLT"/>
        <alias-all entity-alias="PTLT"/>
        <view-link entity-alias="PPGPTLT" rel-entity-alias="PTLT">
            <key-map field-name="portalPortletId"/>
        </view-link>
    </view-entity>
    <entity entity-name="PortletAttribute" package-name="org.ofbiz.common.portal" title="Allows to set different attribute values for each instance of the same portlet">
        <field name="portalPageId" type="id-ne"></field>
        <field name="portalPortletId" type="id-ne"></field>
        <field name="portletSeqId" type="id-ne"></field>
        <field name="attrName" type="id-long-ne"></field>
        <field name="attrValue" type="value"></field>
        <field name="attrDescription" type="description"></field>
        <field name="attrType" type="value"></field>
        <prim-key field="portalPageId"/>
        <prim-key field="portalPortletId"/>
        <prim-key field="portletSeqId"/>
        <prim-key field="attrName"/>
        <relation type="one" fk-name="PTLT_ATTR_PTLT" rel-entity-name="PortalPortlet">
            <key-map field-name="portalPortletId"/>
        </relation>
    </entity>

    <view-entity entity-name="PortalPageAndPortlet" package-name="org.ofbiz.common.portal" title="View entity to have all Portal and Portlet information">
        <member-entity entity-alias="PP" entity-name="PortalPage"/>
        <member-entity entity-alias="PPP" entity-name="PortalPagePortlet"/>
        <alias-all entity-alias="PP"/>
        <alias-all entity-alias="PPP">
            <exclude field="sequenceNum"/>
        </alias-all>
        <alias field="sequenceNum" entity-alias="PPP" name="portletSequenceNum"/>
        <view-link entity-alias="PP" rel-entity-alias="PPP">
            <key-map field-name="portalPageId"/>
        </view-link>
    </view-entity>

    <!-- ============================ -->
    <!-- org.ofbiz.common.property -->
    <!-- ============================ -->
    
    <entity entity-name="SystemProperty" package-name="org.ofbiz.common.property" title="Configurable System Property"><!-- SCIPIO: 2018-08-30: fixed title -->
        <description>Defines and overrides properties as otherwise found in *.properties files in the filesystem (NOTE: not related to Java system properties)</description><!-- SCIPIO -->
        <!-- SCIPIO: NOTE: This is not related to Java system properties; it is better to refer to these as "Entity Properties" in code, as suggested in name by EntityUtilProperties.java -->
        <field name="systemResourceId" type="id-long-ne"></field>
        <field name="systemPropertyId" type="id-long-ne"></field>
        <field name="systemPropertyValue" type="value"></field>
        <field name="description" type="description"></field>
        <field name="useEmpty" type="indicator">
            <description>Y means that empty systemPropertyValue is significant; N means empty systemPropertyValue
                is not significant and the system should fallback on other source (e.g., *.properties file). Default: N (SCIPIO: 2018-07-27: Added)
                NOTE: 2018-07-27: Scipio default for this differs from stock Ofbiz 16+ (which logically uses Y default);
                    this is because in Scipio it is recognized that the SystemProperty entries and descriptions
                    are useful and should not have to be deleted in order to trigger fallback on properties files.
                    However, the code that updates SystemProperty must be aware of useEmpty logic.</description>
        </field>
        <field name="encrypt" type="id"><description>Whether to consult EncryptedSystemProperty record. Values: false (default), true, true-nocache (SCIPIO: 3.0.0: Added)</description></field>
        <prim-key field="systemResourceId"/>
        <prim-key field="systemPropertyId"/>
    </entity>

    <!-- SCIPIO: 3.0.0: Secondary property record; both SystemProperty and EncryptedSystemProperty must be defined because this allows
        no-caching mode of the encrypted value by EntityUtilProperties -->
    <entity entity-name="SystemPropertyEnc" package-name="org.ofbiz.common.property" title="Configurable Encrypted System Property">
        <description>Defines an encrypted value for a SystemProperty record (stored separately for separate cache control)</description>
        <field name="systemResourceId" type="id-long-ne"></field>
        <field name="systemPropertyId" type="id-long-ne"></field>
        <field name="systemPropertyValue" type="value" encrypt="true"></field>
        <prim-key field="systemResourceId"/>
        <prim-key field="systemPropertyId"/>
        <relation type="one" fk-name="SYSPROP_ORIG" rel-entity-name="SystemProperty">
            <key-map field-name="systemResourceId"/>
            <key-map field-name="systemPropertyId"/>
        </relation>
    </entity>

    <entity entity-name="LocalizedProperty" package-name="org.ofbiz.common.property" title="Configurable Label Property"><!-- SCIPIO: 2018-08-30: fixed title -->
        <description>Defines and overrides localized resource and label properties as otherwise found in *UiLabels.xml files in the filesystem (SCIPIO)</description>
        <!-- SCIPIO: NOTE: This is not related to Java system properties; it is better to refer to these as "Entity Properties" in code, as suggested in name by EntityUtilProperties.java -->
        <field name="resourceId" type="id-long-ne"></field>
        <field name="propertyId" type="id-long-ne"></field>
        <field name="lang" type="id-ne"></field>
        <field name="value" type="value"></field>
        <field name="description" type="description"></field>
        <field name="useEmpty" type="indicator">
            <description>SCIPIO: Y means that empty systemPropertyValue is significant; N means empty systemPropertyValue
                is not significant and the system should fallback on other source (e.g., *.properties file). Default: N (added 2018-07-27)
                NOTE: 2018-07-27: Scipio default for this differs from stock Ofbiz 16+ (which logically uses Y default);
                this is because in Scipio it is recognized that the SystemProperty entries and descriptions
                are useful and should not have to be deleted in order to trigger fallback on properties files.
                However, the code that updates SystemProperty must be aware of useEmpty logic.</description>
        </field>
        <prim-key field="resourceId"/>
        <prim-key field="propertyId"/>
        <prim-key field="lang"/>
    </entity>

    <!-- ========================================================= -->
    <!-- ====================== Scipio CMS ======================= -->
    <!-- ========================================================= -->

    <!-- Replaces CommonExt-NoteData extension -->
    <entity entity-name="SystemMessages" package-name="com.ilscipio.scipio.common" title="User System Message">
        <description>Used to send system notifications to the UI</description>
        <field name="messageId" type="id-ne"></field>
        <field name="typeId" type="id"></field>
        <field name="fromPartyId" type="id"></field>
        <field name="toPartyId" type="id"></field>
        <field name="title" type="value"></field>
        <field name="description" type="description"></field>
        <field name="url" type="value"><description>URL linked to current notification</description></field>
        <field name="isRead" type="indicator"><description>Marks the message as read by the user</description></field>

        <prim-key field="messageId"/>

        <relation type="one" fk-name="SYSMSGS_FROM_PARTY" rel-entity-name="Party" title="From">
            <key-map field-name="fromPartyId" rel-field-name="partyId"/>
        </relation>
        <relation type="one" fk-name="SYSMSGS_TO_PARTY" rel-entity-name="Party" title="To">
            <key-map field-name="toPartyId" rel-field-name="partyId"/>
        </relation>
    </entity>
</entitymodel>