Service - Sell Offer Terms: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(12 intermediate revisions by the same user not shown) | |||
Line 37: | Line 37: | ||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
{ | { | ||
nodeLabel: " | nodeLabel: "{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Label", // sellOfferTermLabel | ||
} | |||
{ | |||
nodeLabel: "{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}", // sellOfferTerm | |||
} | } | ||
{ | { | ||
nodeLabel: " | nodeLabel: "{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Link", // sellOfferTermLink | ||
} | } | ||
{ | { | ||
nodeLabel: " | nodeLabel: "{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}PropertyLabel", // sellOfferTermPropertyLabel | ||
} | } | ||
{ | { | ||
nodeLabel: " | nodeLabel: "{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Property", // sellOfferTermProperty | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* see [[NPM module - Izara Core - Attribute Tree|DataSchemaLib]] | |||
=== Relationships === | === Relationships === | ||
Line 114: | Line 58: | ||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
{ | { | ||
relationshipType: " | 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: " | relationshipType: "is_{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Label", // is_sellOfferTermLabel | ||
} | } | ||
{ | { | ||
relationshipType: " | relationshipType: "has_{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Property", // has_sellOfferTermProperty | ||
} | } | ||
{ | { | ||
relationshipType: " | relationshipType: "disabled_{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Property", // disabled_sellOfferTermProperty | ||
} | } | ||
{ | { | ||
relationshipType: " | relationshipType: "is_{SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}PropertyLabel", // is_sellOfferTermPropertyLabel | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* | * see [[NPM module - Izara Core - Attribute Tree|DataSchemaLib]] | ||
== | == Basic node schemas == | ||
Schema comes from [[NPM module - Izara Core - Attribute Tree|BasicNodeSchemaLib]] | |||
# {SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Label // sellOfferTermLabel | |||
{ | #* [[Service - Translations Graph]] | ||
# {SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL} // sellOfferTerm | |||
#* [[Service - Translations Graph]] | |||
# {SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}PropertyLabel // sellOfferTermPropertyLabel | |||
#* [[Service - Translations Graph]] | |||
# {SellOfferTermsLib.SELL_OFFER_TERM_GRAPH_NODE_LABEL}Property // sellOfferTermProperty | |||
#* [[Service - Translations Graph]] | |||
} | |||
= Complex Filter requests = | |||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
{ | { | ||
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 | |||
}, | |||
] | |||
} | |||
}, | }, | ||
... | |||
] | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
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
},
]
}
},
...
]
}