Service - Media Link: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 97: | Line 97: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Relationships === | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
relationshipType: "hasMediaLinkProperty", | |||
schema: { | |||
elementCanBeRemoved: true, | |||
allPropertiesImmutable: true, | |||
restrictProperties: true, | |||
properties: { | |||
originTimestamp: //timestamp the request to create/change this relationship was sent | |||
}, | |||
} | |||
} | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
relationshipType: "disabledMediaLinkProperty", | |||
schema: { | |||
elementCanBeRemoved: true, | |||
allPropertiesImmutable: true, | |||
restrictProperties: true, | |||
properties: { | |||
originTimestamp: //timestamp the request to create/change this relationship was sent | |||
}, | |||
} | |||
} | |||
</syntaxhighlight> | |||
* links a MediaLink node to it's Properties | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
relationshipType: "isMediaLinkPropertyLabel", | |||
schema: { | |||
elementCanBeRemoved: true, | |||
allPropertiesImmutable: true, | |||
restrictProperties: true, | |||
properties: { | |||
originTimestamp: //timestamp the request to create/change this relationship was sent | |||
}, | |||
} | |||
} | |||
</syntaxhighlight> | |||
* links one MediaLinkProperty to one MediaLinkPropertyLabel | |||
== Basic node schemas == | == Basic node schemas == |
Revision as of 13:25, 10 August 2021
Overview
Manages Media Links, links might attach to many subject node types, eg Product, Sell Offer, Product Attribute, Sell Offer Term,..
Repository
https://bitbucket.org/izara-core-media/izara-core-media-media-link/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 mediaLinkId
}
- partition key: resultId
- sort key: dataId
Graph database
Service - Media Graph
Nodes
{
nodeLabel: "mediaLink",
schema: {
identifier: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
mediaLinkId: {
identifier: true, //(random uuid)
},
mediaId: {
immutable: true,
},
linkFromId: {
immutable: true, //eg: productId
},
linkFromType: {
immutable: true, //eg: product, should match nodeLabel of linking node
},
mediaHandlerServiceNameTag: {
immutable: true,
},
},
}
}
{
nodeLabel: "mediaLinkPropertyLabel",
schema: {
identifier: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
propertyId: {
identifier: true,
},
},
}
}
{
nodeLabel: "mediaLinkProperty",
schema: {
identifier: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
propertyId: {
identifier: true, //(random uuid)
},
mediaLinkId: {
immutable: true,
},
},
}
}
Relationships
{
relationshipType: "hasMediaLinkProperty",
schema: {
elementCanBeRemoved: true,
allPropertiesImmutable: true,
restrictProperties: true,
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
},
}
}
{
relationshipType: "disabledMediaLinkProperty",
schema: {
elementCanBeRemoved: true,
allPropertiesImmutable: true,
restrictProperties: true,
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
},
}
}
- links a MediaLink node to it's Properties
{
relationshipType: "isMediaLinkPropertyLabel",
schema: {
elementCanBeRemoved: true,
allPropertiesImmutable: true,
restrictProperties: true,
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
},
}
}
- links one MediaLinkProperty to one MediaLinkPropertyLabel
Basic node schemas
mediaLinkPropertyLabel
mediaLinkProperty