{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://portal.yesilveri.tr/standart/kades-json/v1.1.0/kades-faktor-kaydi.schema.json",
  "title": "kadesFaktorKaydiSemasi",
  "description": "KADES-JSON kades-faktor-kaydi şeması\n\nKOBİZON Proje Danışmanlık ve Yazılım Tic. Ltd. Şti. — Sürüm 1.1.0",
  "$ref": "#/definitions/kadesFaktorKaydiSemasi",
  "definitions": {
    "kadesFaktorKaydiSemasi": {
      "type": "object",
      "properties": {
        "kod": {
          "type": "string",
          "minLength": 2,
          "maxLength": 100
        },
        "adTr": {
          "type": "string",
          "minLength": 2,
          "maxLength": 300
        },
        "adEn": {
          "type": "string",
          "minLength": 2,
          "maxLength": 300
        },
        "kapsam": {
          "type": "number",
          "enum": [
            1,
            2,
            3
          ]
        },
        "kategori": {
          "type": "string",
          "minLength": 2,
          "maxLength": 100
        },
        "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"
          ]
        },
        "deger": {
          "type": "string",
          "minLength": 1,
          "pattern": "^-?\\d+(\\.\\d+)?$"
        },
        "gaz": {
          "type": "string",
          "minLength": 1,
          "maxLength": 50
        },
        "gwpSeti": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "AR5",
                "AR6"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "kaynakKurum": {
          "type": "string",
          "minLength": 2,
          "maxLength": 300
        },
        "kaynakBelgeUrl": {
          "type": "string",
          "format": "uri",
          "pattern": "^https?:\\/\\/"
        },
        "kaynakBelgeAdi": {
          "type": "string",
          "minLength": 3,
          "maxLength": 300
        },
        "kaynakBelgeKonumu": {
          "type": "string",
          "minLength": 2,
          "maxLength": 200
        },
        "yayimTarihi": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "gecerlilikBaslangic": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "gecerlilikBitis": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            {
              "type": "null"
            }
          ]
        },
        "cografya": {
          "type": "string",
          "enum": [
            "TR",
            "TR-81",
            "EU",
            "GLOBAL"
          ]
        },
        "tur": {
          "type": "string",
          "enum": [
            "fiziksel",
            "parasal"
          ]
        },
        "referansYil": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 1990,
              "maximum": 2100
            },
            {
              "type": "null"
            }
          ]
        },
        "belirsizlikYuzde": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "pattern": "^-?\\d+(\\.\\d+)?$"
            },
            {
              "type": "null"
            }
          ]
        },
        "veriKalitesiSkoru": {
          "type": "string",
          "enum": [
            "yuksek",
            "orta",
            "dusuk"
          ]
        },
        "setSurumu": {
          "type": "string",
          "pattern": "^[A-Z]{2,6}-(19|20)\\d{2}\\.(0|[1-9]\\d*)$"
        },
        "onay": {
          "type": "object",
          "properties": {
            "onaylandiMi": {
              "type": "boolean"
            },
            "onaylayanRol": {
              "type": "string",
              "const": "methodology_admin"
            },
            "onayTarihi": {
              "anyOf": [
                {
                  "type": "string",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "onaylandiMi",
            "onaylayanRol",
            "onayTarihi"
          ],
          "additionalProperties": false
        },
        "notlar": {
          "type": "string",
          "maxLength": 2000
        },
        "ekAdimlar": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "ad": {
                "type": "string",
                "minLength": 2,
                "maxLength": 120
              },
              "islem": {
                "type": "string",
                "enum": [
                  "carp",
                  "bol"
                ]
              },
              "deger": {
                "type": "string",
                "pattern": "^\\d{1,12}(\\.\\d{1,10})?$"
              },
              "uygulama": {
                "type": "string",
                "enum": [
                  "miktar",
                  "sonuc"
                ]
              },
              "aciklama": {
                "type": "string",
                "maxLength": 1000
              },
              "kaynakKurum": {
                "type": "string",
                "minLength": 2,
                "maxLength": 300
              },
              "kaynakBelgeAdi": {
                "type": "string",
                "minLength": 3,
                "maxLength": 300
              },
              "kaynakBelgeUrl": {
                "type": "string",
                "format": "uri",
                "pattern": "^https?:\\/\\/"
              },
              "kaynakBelgeKonumu": {
                "type": "string",
                "minLength": 2,
                "maxLength": 200
              },
              "referansYili": {
                "type": "string",
                "pattern": "^(19|20)\\d{2}$"
              }
            },
            "required": [
              "ad",
              "islem",
              "deger",
              "uygulama",
              "kaynakKurum",
              "kaynakBelgeAdi",
              "kaynakBelgeUrl",
              "referansYili"
            ],
            "additionalProperties": false
          },
          "maxItems": 10
        }
      },
      "required": [
        "kod",
        "adTr",
        "adEn",
        "kapsam",
        "kategori",
        "birim",
        "deger",
        "gaz",
        "gwpSeti",
        "kaynakKurum",
        "kaynakBelgeUrl",
        "kaynakBelgeAdi",
        "yayimTarihi",
        "gecerlilikBaslangic",
        "gecerlilikBitis",
        "cografya",
        "tur",
        "referansYil",
        "belirsizlikYuzde",
        "veriKalitesiSkoru",
        "setSurumu",
        "onay"
      ],
      "additionalProperties": false
    }
  }
}
