Service - Issue: Difference between revisions
Jump to navigation
Jump to search
(Created page with "= Overview = Issues can be raised against any objType, when an issue is raised a jury is selected by sortition and decides on whether the issue is acquitted or the severity and level of punishment for the offense. Issues link to a top level comment which in turn sets the primary subject of the issue, discussion of the issue happens in this comment's replies. = Notes = * jurors could be rewarded with tokens that can be traded and used be sellers to increase exposure o...") |
No edit summary |
||
| Line 13: | Line 13: | ||
= Repository = | = Repository = | ||
https://bitbucket.org/izara-core-shared/izara-core-shared- | https://bitbucket.org/izara-core-shared/izara-core-shared-issue | ||
= Object Schemas = | = Object Schemas = | ||
| Line 224: | Line 224: | ||
* Link Juror object to it's user, one juror has one isJuror link | * Link Juror object to it's user, one juror has one isJuror link | ||
= Working documents = | = Working documents = | ||
Revision as of 10:06, 20 May 2025
Overview
Issues can be raised against any objType, when an issue is raised a jury is selected by sortition and decides on whether the issue is acquitted or the severity and level of punishment for the offense.
Issues link to a top level comment which in turn sets the primary subject of the issue, discussion of the issue happens in this comment's replies.
Notes
- jurors could be rewarded with tokens that can be traded and used be sellers to increase exposure of their listings
- users can opt-in/out of being available for jury selection
- have levels of users to create levels of appeal, eg first level jury, appeal to a higher level jury sorted from senior or skilled users, then final appeal where the entire community can vote if the decision/s should be overturned
Repository
https://bitbucket.org/izara-core-shared/izara-core-shared-issue
Object Schemas
- Additional Information
- Per Service Schemas
objType
issue
{
objectType: "issue",
canDelete: false,
storageResources: {
myGraph: {
storageType: "graph",
graphServerTag: "GraphHandler"
}
},
fieldNames: {
issueId: {
type: "string",
randomOnCreate: true,
canUpdate: false,
storageResourceTags: ['myGraph']
}
decisionStatus: {
type: "string", // list/boolean? acquitted|pending|complete
canUpdate: true,
storageResourceTags: ['myGraph']
}
severity: {
type: "integer", // arbritary severity ladder, eg 1-5
canUpdate: true,
storageResourceTags: ['myGraph']
}
},
identifiers: [
{
type: "identifier",
fieldName: "issueId"
}
]
}
juror
{
objectType: "juror",
canDelete: false,
storageResources: {
myGraph: {
storageType: "graph",
graphServerTag: "GraphHandler"
}
},
fieldNames: {
jurorId: {
type: "string",
randomOnCreate: true,
canUpdate: false,
storageResourceTags: ['myGraph']
}
status: {
type: "string", // pending|invalid|confirmed is pending until user confirms, if request expires is invalid and a new juror is attempted
canUpdate: true,
storageResourceTags: ['myGraph']
}
decision: {
type: "string", // list/boolean? acquitted|pending|complete
canUpdate: true,
storageResourceTags: ['myGraph']
}
severity: {
type: "integer", // arbritary severity ladder, eg 1-5
canUpdate: true,
storageResourceTags: ['myGraph']
}
},
identifiers: [
{
type: "identifier",
fieldName: "jurorId"
}
]
}
Object Relationships
useIssueComment
{
"useIssueComment": {
fieldNames: {
},
storageResources: {
myGraph: {
storageType: "graph",
graphServerTag: "GraphHandler"
}
},
links: [
{
storageResourceTags: ["myGraph"],
from: {
objType: {
serviceTag: "issue",
objectType: "issue"
},
linkType: "one",
requiredOnCreate: true,
handler: true
},
to: {
objType: {
serviceTag: "comment",
objectType: "comment"
},
linkType: "one"
}
}
]
}
}
- Connects an issue to it's comment thread, the comment is a new comment that is not inReplyTo another comment, the primarySubjects of the comment are the objects that the issue is related to
- All issues will have one comment where the issue is discussed
hasJuror
{
"hasJuror": {
fieldNames: {
},
storageResources: {
myGraph: {
storageType: "graph",
graphServerTag: "GraphHandler"
}
},
links: [
{
storageResourceTags: ["myGraph"],
from: {
objType: {
serviceTag: "issue",
objectType: "issue"
},
linkType: "many",
handler: true
},
to: {
objType: {
serviceTag: "issue",
objectType: "juror"
},
linkType: "many",
handler: true
}
}
]
}
}
- Links an issue to a potential juror
isJuror
{
"isJuror": {
fieldNames: {
},
storageResources: {
myGraph: {
storageType: "graph",
graphServerTag: "GraphHandler"
}
},
links: [
{
storageResourceTags: ["myGraph"],
from: {
objType: {
serviceTag: "issue",
objectType: "juror"
},
linkType: "many",
handler: true
},
to: {
objType: {
serviceTag: "user",
objectType: "user"
},
linkType: "one"
}
}
]
}
}
- Link Juror object to it's user, one juror has one isJuror link