Service - Sell Offer Terms: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 110: Line 110:
</syntaxhighlight>
</syntaxhighlight>


=== Relationships ===


<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
{
{
relationshipType: "hasSellOfferTermLink",
nodeLabel: "sellOfferTermLabel",
schema: {
schema: {
elementCanBeRemoved: true,
identifier: true,
allPropertiesImmutable: true,
restrictProperties: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
sellOfferTermId: {
identifier: true,
},
},
},
}
}
}
}
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
{
{
relationshipType: "disabledSellOfferTermLink",
nodeLabel: "sellOfferTermValue",
schema: {
schema: {
elementCanBeRemoved: true,
identifier: true,
allPropertiesImmutable: true,
restrictProperties: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
sellOfferTermId: {
identifier: true,
},
},
},
}
}
}
}
</syntaxhighlight>
</syntaxhighlight>
* creates a link in attribute tree between a SellOffer or SellOfferTermLink, and a child SellOfferTermLink


<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
{
{
relationshipType: "isSellOfferTerm",
nodeLabel: "sellOfferTermPropertyName",
schema: {
schema: {
elementCanBeRemoved: true,
identifier: true,
allPropertiesImmutable: true,
restrictProperties: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
propertyId: {
identifier: true,
},
},
},
}
}
}
}
</syntaxhighlight>
</syntaxhighlight>
* links one SellOfferTermLink to one SellOfferTerm


<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
{
{
relationshipType: "isSellOfferTermLabel",
nodeLabel: "sellOfferTermPropertyValue",
schema: {
schema: {
elementCanBeRemoved: true,
identifier: true,
allPropertiesImmutable: true,
restrictProperties: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
propertyId: {
identifier: true,
},
},
},
}
}
}
}
</syntaxhighlight>
</syntaxhighlight>
* links one SellOfferTerm to one SellOfferTermLabel
 
=== Relationships ===


<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
{
{
relationshipType: "hasSellOfferTermProperty",
relationshipType: "hasSellOfferTermLink",
schema: {
schema: {
elementCanBeRemoved: true,
elementCanBeRemoved: true,
Line 183: Line 190:
}
}
</syntaxhighlight>
</syntaxhighlight>
* SellOfferTerm links to it's Properties
<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
{
{
nodeLabel: "sellOfferTermLabel",
relationshipType: "disabledSellOfferTermLink",
schema: {
schema: {
identifier: true,
elementCanBeRemoved: true,
allPropertiesImmutable: true,
restrictProperties: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
properties: {
sellOfferTermId: {
originTimestamp: //timestamp the request to create/change this relationship was sent
identifier: true,
},
},
},
}
}
}
}
</syntaxhighlight>
</syntaxhighlight>
* creates a link in attribute tree between a SellOffer or SellOfferTermLink, and a child SellOfferTermLink


<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
{
{
nodeLabel: "sellOfferTermValue",
relationshipType: "isSellOfferTerm",
schema: {
schema: {
identifier: true,
elementCanBeRemoved: true,
allPropertiesImmutable: true,
restrictProperties: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
properties: {
sellOfferTermId: {
originTimestamp: //timestamp the request to create/change this relationship was sent
identifier: true,
},
},
},
}
}
}
}
</syntaxhighlight>
</syntaxhighlight>
* links one SellOfferTermLink to one SellOfferTerm


<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
{
{
nodeLabel: "sellOfferTermPropertyName",
relationshipType: "isSellOfferTermLabel",
schema: {
schema: {
identifier: true,
elementCanBeRemoved: true,
allPropertiesImmutable: true,
restrictProperties: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
properties: {
propertyId: {
originTimestamp: //timestamp the request to create/change this relationship was sent
identifier: true,
},
},
},
}
}
}
}
</syntaxhighlight>
</syntaxhighlight>
* links one SellOfferTerm to one SellOfferTermLabel


<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
{
{
nodeLabel: "sellOfferTermPropertyValue",
relationshipType: "hasSellOfferTermProperty",
schema: {
schema: {
identifier: true,
elementCanBeRemoved: true,
allPropertiesImmutable: true,
restrictProperties: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
properties: {
propertyId: {
originTimestamp: //timestamp the request to create/change this relationship was sent
identifier: true,
},
},
},
}
}
}
}
</syntaxhighlight>
</syntaxhighlight>
* SellOfferTerm links to it's Properties


== Basic node schemas ==
== Basic node schemas ==

Revision as of 12:59, 10 August 2021

Overview

Manages SellOffer Terms and SellOfferTermLinks. SellOffer Terms can be shared by many Sell Offers, SellOfferTermLinks are used to create an attribute tree for one Sell Offer.

Repository

https://bitbucket.org/izara-market-products/izara-market-products-sell-offer-terms/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 sellOfferTermLinkId
}
  • partition key: resultId
  • sort key: dataId

Graph database

Service - Products Graph

Nodes

{
	nodeLabel: "sellOfferTermLabel",
	schema: {
		identifier: true,
		restrictProperties: true,
		restrictRelationships: true,
		properties: {
			sellOfferTermId: {
				identifier: true, //(random uuid)
			},
		},
	}
}
  • groups sell offer terms, eg: "Accept returns?", "Time allowed to complete payment", etc..
{
	nodeLabel: "sellOfferTerm",
	schema: {
		identifier: true,
		restrictProperties: true,
		restrictRelationships: true,
		properties: {
			sellOfferTermId: {
				identifier: true, //(random uuid)
			},
		},
	}
}
  • one sell offer term value inside one sell offer term label, eg: "yes" under the "Accept returns?" label
{
	nodeLabel: "sellOfferTermLink",
	schema: {
		identifier: true,
		restrictProperties: true,
		restrictRelationships: true,
		properties: {
			sellOfferTermLinkId: {
				identifier: true, //(random uuid)
			},
			sellOfferId: {
				immutable: true,
			},
			sellOfferTermId: {
				immutable: true,
			},
		},
	}
}
{
	nodeLabel: "sellOfferTermProperty",
	schema: {
		identifier: true,
		restrictProperties: true,
		restrictRelationships: true,
		properties: {
			propertyId: {
				identifier: true, //(random uuid)
			},
			sellOfferTermId: {
				immutable: true,
			},
		},
	}
}


{
	nodeLabel: "sellOfferTermLabel",
	schema: {
		identifier: true,
		restrictProperties: true,
		restrictRelationships: true,
		properties: {
			sellOfferTermId: {
				identifier: true,
			},
		},
	}
}
{
	nodeLabel: "sellOfferTermValue",
	schema: {
		identifier: true,
		restrictProperties: true,
		restrictRelationships: true,
		properties: {
			sellOfferTermId: {
				identifier: true,
			},
		},
	}
}
{
	nodeLabel: "sellOfferTermPropertyName",
	schema: {
		identifier: true,
		restrictProperties: true,
		restrictRelationships: true,
		properties: {
			propertyId: {
				identifier: true,
			},
		},
	}
}
{
	nodeLabel: "sellOfferTermPropertyValue",
	schema: {
		identifier: true,
		restrictProperties: true,
		restrictRelationships: true,
		properties: {
			propertyId: {
				identifier: true,
			},
		},
	}
}

Relationships

{
	relationshipType: "hasSellOfferTermLink",
	schema: {
		elementCanBeRemoved: true,
		allPropertiesImmutable: true,
		restrictProperties: true,
		properties: {
			originTimestamp: //timestamp the request to create/change this relationship was sent
		},
	}
}
{
	relationshipType: "disabledSellOfferTermLink",
	schema: {
		elementCanBeRemoved: true,
		allPropertiesImmutable: true,
		restrictProperties: true,
		properties: {
			originTimestamp: //timestamp the request to create/change this relationship was sent
		},
	}
}
  • creates a link in attribute tree between a SellOffer or SellOfferTermLink, and a child SellOfferTermLink
{
	relationshipType: "isSellOfferTerm",
	schema: {
		elementCanBeRemoved: true,
		allPropertiesImmutable: true,
		restrictProperties: true,
		properties: {
			originTimestamp: //timestamp the request to create/change this relationship was sent
		},
	}
}
  • links one SellOfferTermLink to one SellOfferTerm
{
	relationshipType: "isSellOfferTermLabel",
	schema: {
		elementCanBeRemoved: true,
		allPropertiesImmutable: true,
		restrictProperties: true,
		properties: {
			originTimestamp: //timestamp the request to create/change this relationship was sent
		},
	}
}
  • links one SellOfferTerm to one SellOfferTermLabel
{
	relationshipType: "hasSellOfferTermProperty",
	schema: {
		elementCanBeRemoved: true,
		allPropertiesImmutable: true,
		restrictProperties: true,
		properties: {
			originTimestamp: //timestamp the request to create/change this relationship was sent
		},
	}
}
  • SellOfferTerm links to it's Properties

Basic node schemas

sellOfferTermLabel

sellOfferTermValue

sellOfferTermPropertyName

sellOfferTermPropertyValue

Working documents

Sell Offer Terms