{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/CreateRotationRequest",
"title": "CreateRotationRequest",
"type": "object",
"required": [
"type",
"participants",
"startDate"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the rotation."
},
"type": {
"type": "string",
"enum": [
"daily",
"weekly",
"hourly"
],
"description": "Type of rotation cycle."
},
"startDate": {
"type": "string",
"format": "date-time",
"description": "Start date and time of the rotation."
},
"endDate": {
"type": "string",
"format": "date-time",
"description": "End date and time of the rotation."
},
"length": {
"type": "integer",
"description": "Length of the rotation cycle."
},
"participants": {
"type": "array",
"description": "Participants in the rotation.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Participant type."
},
"id": {
"type": "string",
"description": "Participant ID."
},
"username": {
"type": "string",
"description": "Username for user participants."
}
}
}
},
"timeRestriction": {
"type": "object",
"description": "Time restriction for the rotation.",
"properties": {
"type": {
"type": "string",
"description": "Type of restriction."
},
"restrictions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startDay": {
"type": "string",
"description": "Start day."
},
"startHour": {
"type": "integer",
"description": "Start hour."
},
"startMin": {
"type": "integer",
"description": "Start minute."
},
"endDay": {
"type": "string",
"description": "End day."
},
"endHour": {
"type": "integer",
"description": "End hour."
},
"endMin": {
"type": "integer",
"description": "End minute."
}
}
}
}
}
}
}
}