Service - Sell Offer Standard

From Izara Wiki
Jump to navigation Jump to search

Overview

Handler service for the standard sell offer type.

Repository

https://bitbucket.org/izara-market-products/izara-market-products-sell-offer-standard/src/master/

DynamoDB tables

Standard Config Table Per Service

Configuration tags

{
	configTag: "SellOfferHandlerServiceNameTag"
	configKey: "SellOfferHandlerServiceNameTag"
	configValue: xxx // this own services ServiceNameTag, eg "SellOfferStandard"
}
{
	configTag: "ProductGraphServiceName"
	configKey: "ProductGraphServiceName"
	configValue: xxx // eg: "ProductGraph"
}
{
	configTag: "SellOfferManagerServiceName"
	configKey: "SellOfferManagerServiceName"
	configValue: xxx // eg: "SellOfferManager"
}

LogicalResults

Stores results for any requests to perform logical searches on sell offer data

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

Graph database

Service - Products Graph

Nodes

{
	nodeLabel: "{SellOfferStandardLib.SELL_OFFER_GRAPH_NODE_LABEL}",
	schema: {
		identifier: true,
		restrictProperties: true,
		restrictRelationships: true,
		properties: {
			sellOfferId: {
				identifier: true, //(random uuid)
			},
			productId: {
				immutable: true,
			},
			sellOfferHandlerServiceNameTag: {
				immutable: true,
			},
		},
	}
}

Relationships

{
	relationshipType: "{SellOfferStandardLib.createHasSellOfferGraphRelationshipType()}", //"hasSellOffer"
	schema: {
		elementCanBeRemoved: true,
		allPropertiesImmutable: true,
		restrictProperties: true,
		properties: {
			originTimestamp: //timestamp the request to create/change this relationship was sent
		},
	}
}
{
	relationshipType: "{SellOfferStandardLib.createDisabledSellOfferGraphRelationshipType()}", //"disabledSellOffer"
	schema: {
		elementCanBeRemoved: true,
		allPropertiesImmutable: true,
		restrictProperties: true,
		properties: {
			originTimestamp: //timestamp the request to create/change this relationship was sent
		},
	}
}
  • SellOffer relationship links the sell offer with it's parent product, the sell offer can be enabled (hasSellOffer) or disabled (disabledSellOffer)
  • when enabling/disabling we remove the old relationship and replace it with the new setting

Working documents

Sell Offer Standard