{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://portal.yesilveri.tr/standart/kades-json/v1.1.0/kades-hesap-izi-satiri.schema.json",
  "title": "kadesHesapIziSatiriSemasi",
  "description": "KADES-JSON kades-hesap-izi-satiri şeması\n\nKOBİZON Proje Danışmanlık ve Yazılım Tic. Ltd. Şti. — Sürüm 1.1.0",
  "$ref": "#/definitions/kadesHesapIziSatiriSemasi",
  "definitions": {
    "kadesHesapIziSatiriSemasi": {
      "type": "object",
      "properties": {
        "satirId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "kaynakAdi": {
          "type": "string",
          "minLength": 2,
          "maxLength": 300
        },
        "tesisAdi": {
          "type": "string",
          "minLength": 2,
          "maxLength": 200
        },
        "kapsam": {
          "type": "number",
          "enum": [
            1,
            2,
            3
          ]
        },
        "kategori": {
          "type": "string",
          "minLength": 2,
          "maxLength": 100
        },
        "kapsam3Kategori": {
          "type": "integer",
          "minimum": 1,
          "maximum": 15
        },
        "yontem": {
          "type": "string",
          "enum": [
            "tekil",
            "konum_bazli",
            "pazar_bazli"
          ]
        },
        "faaliyet": {
          "type": "object",
          "properties": {
            "miktar": {
              "type": "string",
              "minLength": 1,
              "pattern": "^-?\\d+(\\.\\d+)?$"
            },
            "birim": {
              "type": "string",
              "enum": [
                "MJ",
                "GJ",
                "TJ",
                "kJ",
                "kcal",
                "kWh",
                "MWh",
                "GWh",
                "kg",
                "g",
                "ton",
                "kton",
                "litre",
                "m3",
                "Sm3",
                "km",
                "m",
                "mil",
                "ton-km",
                "kg-km",
                "yolcu-km",
                "hektar",
                "m2",
                "TL",
                "adet"
              ]
            },
            "tarih": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            "veriKaynagi": {
              "type": "string",
              "enum": [
                "birincil",
                "faturalanmis",
                "ai_onerisi_kullanici_onayli",
                "hesaplanmis",
                "tahmini",
                "harcama_bazli"
              ]
            },
            "belgeId": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ]
            },
            "belgeOzetSha256": {
              "anyOf": [
                {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "miktar",
            "birim",
            "tarih",
            "veriKaynagi",
            "belgeId"
          ],
          "additionalProperties": false
        },
        "birimDonusumu": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "kaynakBirim": {
                  "type": "string",
                  "enum": [
                    "MJ",
                    "GJ",
                    "TJ",
                    "kJ",
                    "kcal",
                    "kWh",
                    "MWh",
                    "GWh",
                    "kg",
                    "g",
                    "ton",
                    "kton",
                    "litre",
                    "m3",
                    "Sm3",
                    "km",
                    "m",
                    "mil",
                    "ton-km",
                    "kg-km",
                    "yolcu-km",
                    "hektar",
                    "m2",
                    "TL",
                    "adet"
                  ]
                },
                "hedefBirim": {
                  "type": "string",
                  "enum": [
                    "MJ",
                    "GJ",
                    "TJ",
                    "kJ",
                    "kcal",
                    "kWh",
                    "MWh",
                    "GWh",
                    "kg",
                    "g",
                    "ton",
                    "kton",
                    "litre",
                    "m3",
                    "Sm3",
                    "km",
                    "m",
                    "mil",
                    "ton-km",
                    "kg-km",
                    "yolcu-km",
                    "hektar",
                    "m2",
                    "TL",
                    "adet"
                  ]
                },
                "carpan": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?\\d+(\\.\\d+)?$"
                },
                "donusmusMiktar": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?\\d+(\\.\\d+)?$"
                }
              },
              "required": [
                "kaynakBirim",
                "hedefBirim",
                "carpan",
                "donusmusMiktar"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "faktor": {
          "type": "object",
          "properties": {
            "kod": {
              "type": "string",
              "minLength": 2,
              "maxLength": 100
            },
            "deger": {
              "type": "string",
              "minLength": 1,
              "pattern": "^-?\\d+(\\.\\d+)?$"
            },
            "birim": {
              "type": "string",
              "enum": [
                "MJ",
                "GJ",
                "TJ",
                "kJ",
                "kcal",
                "kWh",
                "MWh",
                "GWh",
                "kg",
                "g",
                "ton",
                "kton",
                "litre",
                "m3",
                "Sm3",
                "km",
                "m",
                "mil",
                "ton-km",
                "kg-km",
                "yolcu-km",
                "hektar",
                "m2",
                "TL",
                "adet"
              ]
            },
            "gaz": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50
            },
            "kaynakKurum": {
              "type": "string",
              "minLength": 2,
              "maxLength": 300
            },
            "kaynakBelgeAdi": {
              "type": "string",
              "minLength": 2,
              "maxLength": 500
            },
            "kaynakBelgeUrl": {
              "type": "string",
              "format": "uri",
              "pattern": "^https?:\\/\\/"
            },
            "gecerlilik": {
              "type": "string",
              "minLength": 5,
              "maxLength": 100
            },
            "setSurumu": {
              "type": "string",
              "pattern": "^[A-Z]{2,6}-(19|20)\\d{2}\\.(0|[1-9]\\d*)$"
            }
          },
          "required": [
            "kod",
            "deger",
            "birim",
            "gaz",
            "kaynakKurum",
            "kaynakBelgeAdi",
            "kaynakBelgeUrl",
            "gecerlilik",
            "setSurumu"
          ],
          "additionalProperties": false
        },
        "gwpSeti": {
          "type": "string",
          "enum": [
            "AR5",
            "AR6"
          ]
        },
        "gwpDegeri": {
          "type": "string",
          "minLength": 1,
          "pattern": "^-?\\d+(\\.\\d+)?$"
        },
        "araSonuclar": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "adim": {
                "type": "string",
                "minLength": 3,
                "maxLength": 300
              },
              "deger": {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?\\d+(\\.\\d+)?$"
              },
              "birim": {
                "type": "string",
                "minLength": 1,
                "maxLength": 50
              }
            },
            "required": [
              "adim",
              "deger",
              "birim"
            ],
            "additionalProperties": false
          },
          "default": []
        },
        "sonuc": {
          "type": "object",
          "properties": {
            "deger": {
              "type": "string",
              "minLength": 1,
              "pattern": "^-?\\d+(\\.\\d+)?$"
            },
            "birim": {
              "type": "string",
              "const": "kgCO2e"
            }
          },
          "required": [
            "deger",
            "birim"
          ],
          "additionalProperties": false
        },
        "veriKalitesi": {
          "type": "string",
          "enum": [
            "birincil",
            "faturalanmis",
            "ai_onerisi_kullanici_onayli",
            "hesaplanmis",
            "tahmini",
            "harcama_bazli"
          ]
        },
        "belirsizlikYuzde": {
          "type": "string",
          "minLength": 1,
          "pattern": "^-?\\d+(\\.\\d+)?$"
        },
        "anomaliAciklamasi": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000
            },
            {
              "type": "null"
            }
          ]
        },
        "aracTuru": {
          "type": "string",
          "minLength": 2,
          "maxLength": 100
        },
        "kipSetiBeyani": {
          "type": "object",
          "properties": {
            "faktorGwpSeti": {
              "type": "string",
              "enum": [
                "AR5",
                "AR6"
              ]
            },
            "envanterGwpSeti": {
              "type": "string",
              "enum": [
                "AR5",
                "AR6"
              ]
            },
            "aciklama": {
              "type": "string",
              "minLength": 10,
              "maxLength": 1000
            }
          },
          "required": [
            "faktorGwpSeti",
            "envanterGwpSeti",
            "aciklama"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "satirId",
        "kaynakAdi",
        "kapsam",
        "kategori",
        "yontem",
        "faaliyet",
        "birimDonusumu",
        "faktor",
        "gwpSeti",
        "gwpDegeri",
        "sonuc",
        "veriKalitesi",
        "belirsizlikYuzde",
        "anomaliAciklamasi"
      ],
      "additionalProperties": false
    }
  }
}
