Service - Sell Offer Terms
Revision as of 12:27, 7 November 2021 by Sven the Barbarian (talk | contribs)
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: "{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Label", // sellOfferTermLabel
}
{
nodeLabel: "{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}", // sellOfferTerm
}
{
nodeLabel: "{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Link", // sellOfferTermLink
}
{
nodeLabel: "{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}PropertyLabel", // sellOfferTermPropertyLabel
}
{
nodeLabel: "{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Property", // sellOfferTermProperty
}
- see DataSchemaLib
Relationships
{
relationshipType: "has_{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Link", // has_sellOfferTermLink
}
{
relationshipType: "disabled_{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Link", // disabled_sellOfferTermLink
}
{
relationshipType: "is_{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Term", // is_sellOfferTermLink
}
{
relationshipType: "is_{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Label", // is_sellOfferTermLabel
}
{
relationshipType: "has_{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Property", // has_sellOfferTermProperty
}
{
relationshipType: "disabled_{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Property", // disabled_sellOfferTermProperty
}
{
relationshipType: "is_{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}PropertyLabel", // is_sellOfferTermPropertyLabel
}
- see DataSchemaLib
Basic node schemas
Schema comes from BasicNodeSchemaLib
- {SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Label // sellOfferTermLabel
- {SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL} // sellOfferTerm
- {SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}PropertyLabel // sellOfferTermPropertyLabel
- {SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Property // sellOfferTermProperty
Complex Filter requests
{
filterType: "sellOfferTermLink" //unique id is sellOfferTermLinkId
type: "group",
elements:
[
{
// find all sellOfferTermLinks that link to a specific sellOfferTermId
type: "logical",
logicalTag: "sellOfferTermId",
comparison: "equals",
value: "lksdflkfldfgldfkgjldfg"
},
{
type: "complexFilter",
complexFilter: {
filterType: "sellOfferTerm", //unique id is sellOfferTermId
type: "group",
elements:
[
{
type: "complexFilter",
complexFilter: {
filterType: "sellOfferTermProperty", //unique id is propertyId
type: "group",
elements:
[
{
// find all propertyIds that link to a specific propertyLabelId
type: "logical",
logicalTag: "propertyLabelId",
comparison: "equals",
value: "lksdflkfldfgldfkgjldfg"
},
]
}
},
{
type: "complexFilter",
complexFilter: {
filterType: "sellOfferTermPropertyTranslation" //unique id is propertyId
type: "group",
elements:
[
{
// find all propertyIds that have current translation that matches text
type: "logical",
logicalTag: "textTag_languageId_text",
resultType: "sellOfferTermProperty",
textTag: "sellOfferTermPropertyValue",
languageId: "en",
text: "Is a great term",
subjectIdentifierPropertyName: "propertyId",
caseSensitive: true
},
]
}
},
]
}
},
{
type: "complexFilter",
complexFilter: {
filterType: "sellOfferTermTranslation" //unique id is sellOfferTermId
type: "group",
elements:
[
{
// find all sellOfferTermIds that have current translation that matches text
type: "logical",
logicalTag: "textTag_languageId_text",
resultType: "sellOfferTerm",
textTag: "sellOfferTermValue",
languageId: "en",
text: "Accepts",
subjectIdentifierPropertyName: "sellOfferTermId", // finds an identifier property on the subjects node and stores in LogicalResults for the request
caseSensitive: true
},
]
}
},
...
]
}