<commit_before><?xml version="1.0" encoding="ISO-8859-1"?>
<types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:noNamespaceSchemaLocation="http://spot-next.io/schemas/v2/itemtypes.xsd">

	<!-- enums -->

	<enum name="OrderStatus" package="io.spotnext.itemtype.commerce.enumeration">
		<description>The render engine used to render cms items.</description>
		<value code="OPEN" />
		<value code="APPROVAL_PENDING" />
		<value code="APPROVED" />
		<value code="APPROVAL_REJECTED" />
		<value code="CANCELLED" />
		<value code="UNKNOWN" />
	</enum>

	<!-- base configuration -->

	<type name="BaseStore" typeCode="BaseStore"
		package="io.spotnext.itemtype.commerce.store" extends="UniqueIdItem">
		<description>This holds the base configuration for a store.</description>
		<properties>
			<property name="name" type="String">
				<description>The name of the base store.</description>
			</property>
			<property name="urlMatchers" type="StringList">
				<description>These regex strings are used to match browser url to the base store.</description>
			</property>
		</properties>
	</type>

	<!-- product related types -->

	<type name="Product" typeCode="Product"
		package="io.spotnext.itemtype.commerce.catalog" extends="CatalogItem">
		<description>The base type Product is used for all purchasable items.</description>
		<properties>
			<property name="name" type="LocalizedString">
				<description>The name of the product.</description>
			</property>
			<property name="description" type="LocalizedString">
				<description>The localized description of the product.</description>
			</property>
			<property name="ean" type="String">
				<description>The EAN product code.</description>
			</property>
		</properties>
	</type>

	<type name="Category" typeCode="Category"
		package="io.spotnext.itemtype.commerce.catalog" extends="CatalogItem">
		<description>Categories are used to group products.</description>
		<properties>
			<property name="name" type="LocalizedString">
			</property>
			<property name="description" type="LocalizedString">
			</property>
		</properties>
	</type>

	<type name="PriceGroup" typeCode="PriceGroup"
		package="io.spotnext.itemtype.commerce.catalog" extends="UniqueIdItem">
		<description>This is the container for all categories and products.</description>
		<properties>
		</properties>
	</type>

	<type name="Price" typeCode="Price"
		package="io.spotnext.itemtype.commerce.catalog">
		<description>This is the container for all categories and products.</description>
		<properties>
			<property name="productId" type="String">
				<description>The product id the price is used for.</description>
				<modifiers unique="true" />
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
			<property name="userGroup" type="UserGroup">
				<description>The assigned user group.</description>
			</property>
			<property name="user" type="User">
				<description>The assigned user.</description>
			</property>
			<property name="price" type="BigDecimal">
				<description>The price value.</description>
			</property>
			<property name="currency" type="Currency">
				<description>The currency of the price.</description>
			</property>
			<property name="net" type="Boolean">
				<description>Defines if the price is net or gross.</description>
				<defaultValue>true</defaultValue>
			</property>
		</properties>
	</type>

	<type name="Tax" package="io.spotnext.itemtype.commerce.store"
		extends="UniqueIdItem">
		<properties>
			<property name="value" type="BigDecimal">
			</property>
			<property name="description" type="LocalizedString">
			</property>
			<property name="country" type="Country">
			</property>
		</properties>
	</type>

	<type name="Stock" package="io.spotnext.itemtype.commerce.store">
		<properties>
			<property name="productId" type="String">
				<modifiers unique="true" />
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
			<property name="value" type="Integer">
				<description>The actual stock level.</description>
				<defaultValue>0</defaultValue>
			</property>
			<property name="reserved" type="Integer">
				<description>The reserved amount of stock.</description>
				<defaultValue>0</defaultValue>
			</property>
		</properties>
	</type>

	<type name="FutureStock" extends="Stock"
		package="io.spotnext.itemtype.commerce.store">
		<properties>
			<property name="availableAt" type="String">
				<description>Defines a future stock and when it will be available.</description>
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
		</properties>
	</type>

	<!-- cart and orders -->

	<type name="AbstractOrder" abstract="true"
		package="io.spotnext.itemtype.commerce.order" extends="UniqueIdItem">
		<description>The abstract base type for orders and carts.</description>
		<properties>
			<property name="customer" type="Customer">
				<modifiers unique="true" />
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
		</properties>
	</type>

	<type name="AbstractOrderEntry" abstract="true"
		package="io.spotnext.itemtype.commerce.order">
		<properties>
			<property name="product" type="Product">
				<modifiers unique="true" />
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
		</properties>
	</type>

	<type name="OrderEntry" extends="AbstractOrderEntry"
		package="io.spotnext.itemtype.commerce.order">

	</type>

	<type name="CartEntry" extends="AbstractOrderEntry"
		package="io.spotnext.itemtype.commerce.order">

	</type>

	<type name="Order" extends="AbstractOrder" package="io.spotnext.itemtype.commerce.order">
	</type>

	<type name="Cart" extends="AbstractOrder" package="io.spotnext.itemtype.commerce.order">
	</type>

	<!-- customers -->

	<type name="Customer" extends="User"
		package="io.spotnext.itemtype.commerce.customer">
		<properties>
			<property name="firstName" type="String">
			</property>
			<property name="lastName" type="String">
			</property>
			<property name="birthDay" type="Date">
			</property>
		</properties>
	</type>
	
	<!-- CMS components -->
	
	<type name="CategoryMenuComponent" extends="AbstractMenuComponent" package="io.spotnext.itemtype.cms">
		<properties>
			<property name="category" type="Category">
				<description>
					The parent category, that will be used to render sub menu entries based on the sub categories and product.
				</description>
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
			<property name="showOnlyCategories" type="boolean">
				<description>Defines if only categories should be rendered, or products too.</description>
				<defaultValue>false</defaultValue>
			</property>
		</properties>
	</type>
	
	<!-- relations -->

	<relation name="Category2Product">
		<description>The categories the product is referenced by.</description>
		<source cardinality="many" itemType="Category" mappedBy="categories"></source>
		<target cardinality="many" itemType="Product" mappedBy="products">
			<description>The products in this catalog.</description>
		</target>
	</relation>
	
	<relation name="Category2Category">
		<description>The categories that are included as sub categories.</description>
		<source cardinality="many" itemType="Category" mappedBy="superCategories" />
		<target cardinality="many" itemType="Category" mappedBy="subCategories" />
	</relation>

	<relation name="AbstractOrder2AbstractOrderEntry">
		<description>The categories the product is referenced by.</description>
		<source cardinality="one" itemType="AbstractOrder" mappedBy="order"></source>
		<target cardinality="many" itemType="AbstractOrderEntry"
			mappedBy="entries">
			<description>The order entries.</description>
		</target>
	</relation>

	<relation name="BaseStore2Country">
		<description>The categories the product is referenced by.</description>
		<source itemType="BaseStore" mappedBy="baseStores" cardinality="many">
			<description>The base stores the country is assigned to.</description>
		</source>
		<target itemType="Country" mappedBy="countries" cardinality="many">
			<description>The countries that are assigned to this base store.</description>
		</target>
	</relation>

</types><commit_msg>Update commerce-base-itemtypes.xml<commit_after><?xml version="1.0" encoding="ISO-8859-1"?>
<types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:noNamespaceSchemaLocation="http://spot-next.io/schemas/v2/itemtypes.xsd">

	<!-- enums -->

	<enum name="OrderStatus" package="io.spotnext.itemtype.commerce.enumeration">
		<description>The render engine used to render cms items.</description>
		<value code="OPEN" />
		<value code="APPROVAL_PENDING" />
		<value code="APPROVED" />
		<value code="APPROVAL_REJECTED" />
		<value code="CANCELLED" />
		<value code="UNKNOWN" />
	</enum>

	<!-- base configuration -->

	<type name="BaseStore" typeCode="BaseStore"
		package="io.spotnext.itemtype.commerce.store" extends="UniqueIdItem">
		<description>This holds the base configuration for a store.</description>
		<properties>
			<property name="name" type="String">
				<description>The name of the base store.</description>
			</property>
			<property name="urlMatchers" type="StringList">
				<description>These regex strings are used to match browser url to the base store.</description>
			</property>
		</properties>
	</type>

	<!-- product related types -->

	<type name="Product" typeCode="Product"
		package="io.spotnext.itemtype.commerce.catalog" extends="CatalogItem">
		<description>The base type Product is used for all purchasable items.</description>
		<properties>
			<property name="name" type="LocalizedString">
				<description>The name of the product.</description>
			</property>
			<property name="description" type="LocalizedString">
				<description>The localized description of the product.</description>
			</property>
			<property name="ean" type="String">
				<description>The EAN product code.</description>
			</property>
		</properties>
	</type>

	<type name="Category" typeCode="Category"
		package="io.spotnext.itemtype.commerce.catalog" extends="CatalogItem">
		<description>Categories are used to group products.</description>
		<properties>
			<property name="name" type="LocalizedString">
			</property>
			<property name="description" type="LocalizedString">
			</property>
		</properties>
	</type>

	<type name="PriceGroup" typeCode="PriceGroup"
		package="io.spotnext.itemtype.commerce.catalog" extends="UniqueIdItem">
		<description>This is the container for all categories and products.</description>
		<properties>
		</properties>
	</type>

	<type name="Price" typeCode="Price"
		package="io.spotnext.itemtype.commerce.catalog">
		<description>This is the container for all categories and products.</description>
		<properties>
			<property name="productId" type="String">
				<description>The product id the price is used for.</description>
				<modifiers unique="true" />
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
			<property name="userGroup" type="UserGroup">
				<description>The assigned user group.</description>
			</property>
			<property name="user" type="User">
				<description>The assigned user.</description>
			</property>
			<property name="price" type="BigDecimal">
				<description>The price value.</description>
			</property>
			<property name="currency" type="Currency">
				<description>The currency of the price.</description>
			</property>
			<property name="net" type="Boolean">
				<description>Defines if the price is net or gross.</description>
				<defaultValue>true</defaultValue>
			</property>
		</properties>
	</type>

	<type name="Tax" package="io.spotnext.itemtype.commerce.store"
		extends="UniqueIdItem">
		<properties>
			<property name="value" type="BigDecimal">
			</property>
			<property name="description" type="LocalizedString">
			</property>
			<property name="country" type="Country">
			</property>
		</properties>
	</type>

	<type name="Stock" package="io.spotnext.itemtype.commerce.store">
		<properties>
			<property name="productId" type="String">
				<modifiers unique="true" />
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
			<property name="value" type="Integer">
				<description>The actual stock level.</description>
				<defaultValue>0</defaultValue>
			</property>
			<property name="reserved" type="Integer">
				<description>The reserved amount of stock.</description>
				<defaultValue>0</defaultValue>
			</property>
		</properties>
	</type>

	<type name="FutureStock" extends="Stock"
		package="io.spotnext.itemtype.commerce.store">
		<properties>
			<property name="availableAt" type="String">
				<description>Defines a future stock and when it will be available.</description>
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
		</properties>
	</type>

	<!-- cart and orders -->

	<type name="AbstractOrder" abstract="true"
		package="io.spotnext.itemtype.commerce.order" extends="UniqueIdItem">
		<description>The abstract base type for orders and carts.</description>
		<properties>
			<property name="customer" type="Customer">
				<modifiers unique="true" />
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
		</properties>
	</type>

	<type name="AbstractOrderEntry" abstract="true"
		package="io.spotnext.itemtype.commerce.order">
		<properties>
			<property name="product" type="Product">
				<modifiers unique="true" />
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
		</properties>
	</type>

	<type name="OrderEntry" extends="AbstractOrderEntry"
		package="io.spotnext.itemtype.commerce.order">

	</type>

	<type name="CartEntry" extends="AbstractOrderEntry"
		package="io.spotnext.itemtype.commerce.order">

	</type>

	<type name="Order" extends="AbstractOrder" package="io.spotnext.itemtype.commerce.order">
	</type>

	<type name="Cart" extends="AbstractOrder" package="io.spotnext.itemtype.commerce.order">
	</type>

	<!-- customers -->

	<type name="Customer" extends="User"
		package="io.spotnext.itemtype.commerce.customer">
		<properties>
			<property name="firstName" type="String">
			</property>
			<property name="lastName" type="String">
			</property>
			<property name="birthDay" type="LocalDate">
			</property>
		</properties>
	</type>
	
	<!-- CMS components -->
	
	<type name="CategoryMenuComponent" extends="AbstractMenuComponent" package="io.spotnext.itemtype.cms">
		<properties>
			<property name="category" type="Category">
				<description>
					The parent category, that will be used to render sub menu entries based on the sub categories and product.
				</description>
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
			<property name="showOnlyCategories" type="boolean">
				<description>Defines if only categories should be rendered, or products too.</description>
				<defaultValue>false</defaultValue>
			</property>
		</properties>
	</type>
	
	<!-- relations -->

	<relation name="Category2Product">
		<description>The categories the product is referenced by.</description>
		<source cardinality="many" itemType="Category" mappedBy="categories"></source>
		<target cardinality="many" itemType="Product" mappedBy="products">
			<description>The products in this catalog.</description>
		</target>
	</relation>
	
	<relation name="Category2Category">
		<description>The categories that are included as sub categories.</description>
		<source cardinality="many" itemType="Category" mappedBy="superCategories" />
		<target cardinality="many" itemType="Category" mappedBy="subCategories" />
	</relation>

	<relation name="AbstractOrder2AbstractOrderEntry">
		<description>The categories the product is referenced by.</description>
		<source cardinality="one" itemType="AbstractOrder" mappedBy="order"></source>
		<target cardinality="many" itemType="AbstractOrderEntry"
			mappedBy="entries">
			<description>The order entries.</description>
		</target>
	</relation>

	<relation name="BaseStore2Country">
		<description>The categories the product is referenced by.</description>
		<source itemType="BaseStore" mappedBy="baseStores" cardinality="many">
			<description>The base stores the country is assigned to.</description>
		</source>
		<target itemType="Country" mappedBy="countries" cardinality="many">
			<description>The countries that are assigned to this base store.</description>
		</target>
	</relation>

</types>

{'fraction_non_alphanumeric': 0.1480980657299077, 'fraction_numerical': 0.0022341113528132166, 'mean_word_length': 4.825342465753424, 'pattern_counts': {'":': 0, '<': 487, '<?xml version=': 2, '>': 487, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 5}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6889104', 'n_tokens_mistral': 5558, 'n_tokens_neox': 4789, 'n_words': 1126}