Service - Sell Offer Terms: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 110: | Line 110: | ||
}, | }, | ||
{ | { | ||
type: "complexFilter", | |||
complexFilter: { | |||
filterType: "sellOfferTerm", //unique id is sellOfferTermId | filterType: "sellOfferTerm", //unique id is sellOfferTermId | ||
type: "group", | type: "group", |
Latest revision as of 12:27, 7 November 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: "{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
},
]
}
},
...
]
}