{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://opendata.chmi.cz/air_quality/now/forecast/airquality_FC-boxplots.schema.json",
  "title": "Aktuální stav a modelová předpověď kvality ovzduší pro kraje a ORP - boxploty",
  "description": "Schéma JSON souboru obsahujícího hodinové boxplotové statistiky aktuálního stavu a předpovědi koncentrací znečišťujících látek.",
  "type": "object",

  "required": [
    "zaznamID",
    "datovyZdrojID",
    "datovyTokID",
    "datumVytvoreni",
    "verzeDat",
    "data"
  ],

  "properties": {

    "zaznamID": {
      "type": "string",
      "description": "Jedinečný identifikátor záznamu (v kombinaci s datumVytvoreni)."
    },

    "datovyZdrojID": {
      "type": "string",
      "description": "Identifikátor datového zdroje."
    },

    "datovyTokID": {
      "type": "string",
      "description": "Identifikátor datového toku."
    },

    "datumVytvoreni": {
      "type": "string",
      "format": "date-time",
      "description": "Datum a čas vytvoření datového souboru v UTC."
    },

    "verzeDat": {
      "type": "string",
      "description": "Verze datového formátu."
    },

    "data": {
      "type": "object",

      "required": [
        "metadata",
        "values"
      ],

      "properties": {

        "metadata": {
          "type": "object",

          "required": [
            "DataSourceID",
            "Dataset",
            "OriginFile",
            "ComponentCode",
            "AreaType",
            "AreaName",
            "AreaCode",
            "AreaCodeSystem",
            "Identifier"
          ],

          "properties": {

            "DataSourceID": {
              "type": "string",
              "description": "Identifikátor zdrojového systému."
            },

            "Dataset": {
              "type": "string",
              "description": "Typ datasetu."
            },

            "OriginFile": {
              "type": "string",
              "description": "Název původního souboru."
            },

            "ComponentCode": {
              "type": "string",
              "enum": [
                "NO2",
                "PM10",
                "PM2_5",
                "O3",
                "SO2"
              ],
              "description": "Kód znečišťující látky uvedené v souboru."
            },

            "AreaType": {
              "type": "string",
              "enum": [
                "KRAJ",
                "ORP"
              ],
              "description": "Typ územní jednotky."
            },

            "AreaName": {
              "type": "string",
              "description": "Název územní jednotky."
            },

            "AreaCode": {
              "type": "string",
              "description": "Kód územní jednotky."
            },

            "AreaCodeSystem": {
              "type": "string",
              "description": "Identifikátor použitého číselníku územních jednotek."
            },

            "Note": {
              "type": "string",
              "description": "Doplňující informace."
            },

            "Identifier": {
              "type": "string",
              "description": "Jednoznačný identifikátor kombinace znečišťující látky a územní jednotky."
            }
          },

          "allOf": [
            {
              "if": {
                "properties": {
                  "AreaType": {
                    "const": "KRAJ"
                  }
                }
              },
              "then": {
                "properties": {
                  "AreaCodeSystem": {
                    "const": "CZ-NUTS3"
                  }
                }
              }
            },
            {
              "if": {
                "properties": {
                  "AreaType": {
                    "const": "ORP"
                  }
                }
              },
              "then": {
                "properties": {
                  "AreaCodeSystem": {
                    "const": "CZ-RUIAN-ORP"
                  }
                }
              }
            }
          ],

          "additionalProperties": false
        },

        "values": {
          "type": "array",
          "description": "Seznam hodinových boxplotových statistik.",

          "items": {
            "type": "object",

            "required": [
              "dt_beg_utc",
              "dt_end_utc",
              "type",
              "min",
              "p_25",
              "p_50",
              "p_75",
              "max"
            ],

            "properties": {

              "dt_beg_utc": {
                "type": "string",
                "format": "date-time",
                "description": "Začátek hodinového intervalu (UTC)."
              },

              "dt_end_utc": {
                "type": "string",
                "format": "date-time",
                "description": "Konec hodinového intervalu (UTC)."
              },

              "type": {
                "type": "string",
                "enum": [
                  "mapa",
                  "predpoved"
                ],
                "description": "Typ záznamu."
              },

              "min": {
                "type": "string",
                "pattern": "^-?[0-9]+(\\.[0-9]+)?$",
                "description": "Minimální hodnota koncentrace."
              },

              "p_25": {
                "type": "string",
                "pattern": "^-?[0-9]+(\\.[0-9]+)?$",
                "description": "25. percentil koncentrace."
              },

              "p_50": {
                "type": "string",
                "pattern": "^-?[0-9]+(\\.[0-9]+)?$",
                "description": "50. percentil (medián) koncentrace."
              },

              "p_75": {
                "type": "string",
                "pattern": "^-?[0-9]+(\\.[0-9]+)?$",
                "description": "75. percentil koncentrace."
              },

              "max": {
                "type": "string",
                "pattern": "^-?[0-9]+(\\.[0-9]+)?$",
                "description": "Maximální hodnota koncentrace."
              }

            },

            "additionalProperties": false
          }
        }

      },

      "additionalProperties": false
    }

  },

  "additionalProperties": false
}  