{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/hybriqx-com/json-schema/hybriqx-com-class-change-input-schema.json",
  "title": "ClassChangeInput",
  "description": "How one class runs on one date. Whatever is left empty runs as the timetable has it, so an empty change restores it.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/hybriqx-com-openapi.json#/components/schemas/ClassChangeInput",
  "properties": {
    "slot_id": {
      "type": "string",
      "maxLength": 64,
      "minLength": 1,
      "title": "Slot Id"
    },
    "date": {
      "type": "string",
      "maxLength": 10,
      "minLength": 10,
      "title": "Date"
    },
    "cancelled": {
      "type": "boolean",
      "title": "Cancelled",
      "default": false
    },
    "starts": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Starts"
    },
    "ends": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ends"
    },
    "capacity": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 200.0,
          "minimum": 1.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Capacity"
    },
    "coach_id": {
      "type": "string",
      "maxLength": 64,
      "title": "Coach Id",
      "default": ""
    },
    "confirm_booking_changes": {
      "type": "boolean",
      "title": "Confirm Booking Changes",
      "default": false
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "slot_id",
    "date"
  ]
}