Service - Product Attributes: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
(Created page with "= Overview = Manages Product Attributes and ProductAttributeLinks. Product Attributes can be shared by many Products, ProductAttributeLinks are used to create an attribute tr...")
 
 
(14 intermediate revisions by the same user not shown)
Line 37: Line 37:
<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
{
{
nodeLabel: "productAttribute",
nodeLabel: "{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Label",
schema: {
}
identifier: true,
{
restrictProperties: true,
nodeLabel: "{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}",
restrictRelationships: true,
}
properties: {
{
productAttributeId: {
nodeLabel: "{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Link",
identifier: true, //(random uuid)
},
},
}
}
}
</syntaxhighlight>
<syntaxhighlight lang="JavaScript">
{
{
nodeLabel: "productAttributeLink",
nodeLabel: "{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}PropertyLabel",
schema: {
identifier: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
productAttributeLinkId: {
identifier: true, //(random uuid)
},
productId: {
immutable: true,
},
productAttributeId: {
immutable: true,
},
},
}
}
}
</syntaxhighlight>
<syntaxhighlight lang="JavaScript">
{
{
nodeLabel: "productAttributeProperty",
nodeLabel: "{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Property",
schema: {
identifier: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
propertyId: {
identifier: true, //(random uuid)
},
productAttributeId: {
immutable: true,
},
},
}
}
}
</syntaxhighlight>
</syntaxhighlight>
* see [[NPM module - Izara Core - Attribute Tree|DataSchemaLib]]


== [[Service - Translations Graph]]==
=== Relationships ===
 
=== Nodes ===


<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
{
{
nodeLabel: "productAttributePropertyName",
relationshipType: "has_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Link",
schema: {
}
identifier: true,
{
restrictProperties: true,
relationshipType: "disabled_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Link",
restrictRelationships: true,
}
properties: {
{
propertyId: {
relationshipType: "is_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}",
identifier: true,
}
},
{
},
relationshipType: "is_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Label",
}
}
{
relationshipType: "has_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Property",
}
{
relationshipType: "disabled_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Property",
}
}
</syntaxhighlight>
<syntaxhighlight lang="JavaScript">
{
{
nodeLabel: "productAttributePropertyValue",
relationshipType: "is_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}PropertyLabel",
schema: {
identifier: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
propertyId: {
identifier: true,
},
},
}
}
}
</syntaxhighlight>
</syntaxhighlight>
* see [[NPM module - Izara Core - Attribute Tree|DataSchemaLib]]
== Basic node schemas ==
Schema comes from [[NPM module - Izara Core - Attribute Tree|BasicNodeSchemaLib]]
# {ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Label
#* [[Service - Translations Graph]]
# {ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}
#* [[Service - Media Graph]]
#* [[Service - Translations Graph]]
# {ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}PropertyLabel
#* [[Service - Translations Graph]]
# {ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Property
#* [[Service - Translations Graph]]


= Working documents =
= Working documents =

Latest revision as of 12:18, 18 September 2021

Overview

Manages Product Attributes and ProductAttributeLinks. Product Attributes can be shared by many Products, ProductAttributeLinks are used to create an attribute tree for one Product.

Repository

https://bitbucket.org/izara-market-products/izara-market-products-product-attributes/src/master/

DynamoDB tables

Standard Config Table Per Service

Configuration tags

..

LogicalResults

Stores results for any requests to perform logical searches on media links

{
	resultId: xxx // eg: filterMainId for a single logical element
	dataId: xxx // one productAttributeLinkId
}
  • partition key: resultId
  • sort key: dataId

Graph database

Service - Products Graph

Nodes

{
	nodeLabel: "{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Label",
}
{
	nodeLabel: "{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}",
}
{
	nodeLabel: "{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Link",
}
{
	nodeLabel: "{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}PropertyLabel",
}
{
	nodeLabel: "{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Property",
}

Relationships

{
	relationshipType: "has_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Link",
}
{
	relationshipType: "disabled_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Link",
}
{
	relationshipType: "is_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}",
}
{
	relationshipType: "is_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Label",
}
{
	relationshipType: "has_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Property",
}
{
	relationshipType: "disabled_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Property",
}
{
	relationshipType: "is_{ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}PropertyLabel",
}

Basic node schemas

Schema comes from BasicNodeSchemaLib

  1. {ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Label
  2. {ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}
  3. {ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}PropertyLabel
  4. {ProductAttributesLib.PRODUCT_ATTRIBUTE_GRAPH_NODE_LABEL}Property

Working documents

Product Attributes