{
  "title": "Search result test schema",
  "type": "object",
  "required": [
    "costCode",
    "testDate",
    "driverNumber",
    "candidateName",
    "applicationReference",
    "category",
    "activityCode",
    "autosave"
  ],
  "properties": {
    "costCode": {
      "description": "The test center ID",
      "type": "string"
    },
    "testDate": {
      "description": "The date and time of the test",
      "type": "string"
    },
    "driverNumber": {
      "description": "The candidate's driver number, typically (though not always) 16 characters if UK, or 8 digits if NI",
      "type": "string",
      "maxLength": 24
    },
    "candidateName": {
      "$ref": "#/definitions/name"
    },
    "applicationReference": {
      "description": "The application ID",
      "type": "integer"
    },
    "category": {
      "description": "Category code for the test report",
      "type": "string"
    },
    "activityCode": {
      "$ref": "#/definitions/activityCode"
    },
    "passCertificateNumber": {
      "description": "The PCN issued to the candidate",
      "type": "string"
    },
    "grade": {
      "description": "ADI3 grade assigned for a pass outcome",
      "type": "string"
    },
    "autosave": {
      "description": "Upload status of the test",
      "type": "integer"
    }
  },
  "definitions": {
    "activityCode": {
      "description": "Code representing the result of the test",
      "type": "string",
      "enum": [
        "1",
        "2",
        "3",
        "4",
        "5",
        "6",
        "11",
        "20",
        "21",
        "22",
        "23",
        "24",
        "25",
        "26",
        "27",
        "28",
        "32",
        "33",
        "34",
        "35",
        "36",
        "37",
        "38",
        "40",
        "41",
        "51",
        "52",
        "55",
        "58",
        "59",
        "60",
        "61",
        "62",
        "63",
        "64",
        "66",
        "67",
        "68",
        "69",
        "70",
        "71",
        "73",
        "74",
        "75",
        "76",
        "77",
        "78",
        "79",
        "80",
        "81",
        "82",
        "83",
        "88",
        "89"
      ],
      "additionalProperties": false
    },
    "name": {
      "description": "Details of the individual's name",
      "type": "object",
      "properties": {
        "title": {
          "description": "The individual's title",
          "type": "string",
          "maxLength": 7
        },
        "firstName": {
          "description": "The individual's forename",
          "type": "string",
          "maxLength": 50
        },
        "secondName": {
          "description": "The individual's second name",
          "type": "string",
          "maxLength": 50
        },
        "thirdName": {
          "description": "The individual's third name",
          "type": "string",
          "maxLength": 50
        },
        "lastName": {
          "description": "The individual's surname",
          "type": "string",
          "maxLength": 50
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
