mirror of
https://github.com/EDCD/EDDN.git
synced 2025-04-12 07:00:04 +03:00
153 lines
6.7 KiB
JSON
153 lines
6.7 KiB
JSON
{
|
|
"$schema" : "http://json-schema.org/draft-04/schema#",
|
|
"id" : "https://eddn.edcd.io/schemas/fcmaterials_capi/1",
|
|
"type" : "object",
|
|
"additionalProperties" : false,
|
|
"required": [ "$schemaRef", "header", "message" ],
|
|
"properties": {
|
|
"$schemaRef": {
|
|
"type" : "string"
|
|
},
|
|
"header": {
|
|
"type" : "object",
|
|
"additionalProperties" : true,
|
|
"required" : [ "uploaderID", "softwareName", "softwareVersion" ],
|
|
"properties" : {
|
|
"uploaderID": {
|
|
"type" : "string"
|
|
},
|
|
"gameversion": {
|
|
"type" : "string",
|
|
"description" : "Value of 'CAPI-market' if possible, else empty string."
|
|
},
|
|
"gamebuild": {
|
|
"type" : "string",
|
|
"description" : "Value of 'CAPI-market' if possible, else empty string."
|
|
},
|
|
"softwareName": {
|
|
"type" : "string"
|
|
},
|
|
"softwareVersion": {
|
|
"type" : "string"
|
|
},
|
|
"gatewayTimestamp": {
|
|
"type" : "string",
|
|
"format" : "date-time",
|
|
"description" : "Timestamp upon receipt at the gateway. If present, this property will be overwritten by the gateway; submitters are not intended to populate this property."
|
|
}
|
|
}
|
|
},
|
|
"message": {
|
|
"type" : "object",
|
|
"description" : "Contains all properties from the listed events in the client's journal minus the Localised strings and the properties marked below as 'disallowed'",
|
|
"additionalProperties" : false,
|
|
"required" : [ "timestamp", "event", "MarketID", "CarrierID", "Items" ],
|
|
"properties" : {
|
|
"timestamp": {
|
|
"type" : "string",
|
|
"format" : "date-time"
|
|
},
|
|
"event" : {
|
|
"enum" : [ "FCMaterials" ]
|
|
},
|
|
"horizons": {
|
|
"type" : "boolean",
|
|
"description" : "Boolean value copied from the Journal LoadGame event, when it is present there."
|
|
},
|
|
"odyssey": {
|
|
"type" : "boolean",
|
|
"description" : "Boolean value copied from the Journal LoadGame event, when it is present there."
|
|
},
|
|
|
|
"MarketID": {
|
|
"type" : "integer"
|
|
},
|
|
|
|
"CarrierID": {
|
|
"type" : "string",
|
|
"minLength" : 1
|
|
},
|
|
|
|
"Items": {
|
|
"properties": {
|
|
"purchases": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [ "name", "price", "outstanding", "total" ],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"locName": {
|
|
"$ref": "#/definitions/disallowed"
|
|
},
|
|
"outstanding": {
|
|
"type": "integer"
|
|
},
|
|
"price": {
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"sales": {
|
|
"anyOf": [
|
|
{
|
|
"type": "array",
|
|
"$comment": "If there are no items then sales is an empty array",
|
|
"minItems": 0,
|
|
"maxItems": 0
|
|
},
|
|
{
|
|
"type": "object",
|
|
"$comment": "If there ARE items then sales is an object, *NOT* an array",
|
|
"patternProperties": {
|
|
"^[0-9]+$": {
|
|
"type" : "object",
|
|
"required" : [ "id", "name", "price", "stock" ],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"id" : {
|
|
"type" : "integer"
|
|
},
|
|
"name" : {
|
|
"type" : "string",
|
|
"minLength": 1
|
|
},
|
|
"locName" : {
|
|
"$ref": "#/definitions/disallowed"
|
|
},
|
|
"price" : {
|
|
"type": "integer"
|
|
},
|
|
"stock": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"disallowed": {
|
|
"not" : {
|
|
"type": [
|
|
"array", "boolean", "integer", "number", "null", "object", "string"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|