Suite aux discussions de vendredi dernier, voici une deuxième
version du schéma, avec pour changements principaux :
la prise en compte d'un id pour les temps, et l'ajout d'une date de
début et d'une date de fin pour définir l'intervalle de mise à jour,
la date de fin étant optionnelle (si elle n'est pas présente, la
mise à jour prend comme fin de période la date courante). Le terme
de
path a été changé en id pour pouvoir coller à différents modèles
(dans le cas de jtimer il s'agit du path de la tâche, pour wid ça
pourra être le tag).{
"description": "schema for the update of the
times of a project/task",
"$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
"task": {
"type":"object",
"properties": {
"id": {"type": "string"},
"startDate" : {"type": "string"},
"endDate" : {"type": "string"},
"totalTime": {"type":"integer"},
"periods": {
"type":"array",
"items" : {
"type" : "object",
"properties": {
"id":
{"type":"string"},
"startDate":{"type" :
"string"},
"duration":
{"type":"integer"}
}
},
"minItems" : 1
},
"name": {"type": "string"},
"annotation": {"type": "string"},
"subtasks": {
"type": "array",
"items": {"$ref":"#/definitions/task"}
}
},
"required":["id", "startDate", "totalTime",
"periods"]
}
},
"type":"object",
"properties": {
"task": {"$ref":"#/definitions/task"}
}
}
avec un exemple :
{
"id":"path/le/chien",
"startDate":"2002/02/02T00:00:00.000Z",
"totalTime":300,
"periods": [
{"id": "anAmazingID",
"startDate":"2016/04/03T00:00:00.000Z", "duration":175},
{"id": "anOtheriD", "startDate":
"2002/02/02T00:00:00.000Z", "duration": 78},
{"id": "IDitAgain", "startDate":
"2006/10/20T00:00:00.000Z", "duration":58}
],
"name":"6882",
"annotation":"bla",
"subtasks": [ ]
}