{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://girisimkalkinma.org/downloads/program-ilan.schema.json",
  "title": "Program ilanı",
  "description": "Bir program çağrısının yayımlanabilir asgari alanları. Bu şema bir çalışma taslağıdır. Gerçek kişisel veya hassas veri işlenecekse hukuk onayı, veri sorumlusu ataması ve saklama-silme politikası olmadan kullanılamaz.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "ilan_kodu",
    "surum",
    "baslik",
    "amac",
    "uygunluk",
    "kapsam_disi",
    "takvim",
    "destek",
    "degerlendirme",
    "itiraz",
    "yayin_tarihi",
    "son_kontrol"
  ],
  "properties": {
    "ilan_kodu": {
      "type": "string",
      "description": "Program içinde benzersiz ilan kimliği",
      "minLength": 1
    },
    "surum": {
      "type": "string",
      "pattern": "^v[0-9]+(\\.[0-9]+)?$",
      "description": "İlan sürümü; her değişiklikte artar"
    },
    "baslik": {
      "type": "string",
      "minLength": 1
    },
    "amac": {
      "type": "string",
      "minLength": 1,
      "description": "Programın çözmeyi hedeflediği problem"
    },
    "uygunluk": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "olcut",
          "dogrulama"
        ],
        "properties": {
          "olcut": {
            "type": "string"
          },
          "dogrulama": {
            "type": "string",
            "description": "Bu ölçüt hangi belgeyle doğrulanacak"
          }
        }
      }
    },
    "kapsam_disi": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Açıkça uygun olmayan durumlar"
    },
    "takvim": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "basvuru_acilis",
        "basvuru_kapanis"
      ],
      "properties": {
        "basvuru_acilis": {
          "type": "string",
          "format": "date"
        },
        "basvuru_kapanis": {
          "type": "string",
          "format": "date"
        },
        "degerlendirme_bitis": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "sonuc_ilani": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        }
      }
    },
    "destek": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "tur",
        "kosul"
      ],
      "properties": {
        "tur": {
          "type": "string",
          "description": "Nakit, ayni, mentorluk, alan vb."
        },
        "tutar": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0
        },
        "para_birimi": {
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[A-Z]{3}$"
        },
        "kosul": {
          "type": "string"
        }
      }
    },
    "degerlendirme": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "olcutler"
      ],
      "properties": {
        "olcutler": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "ad",
              "agirlik"
            ],
            "properties": {
              "ad": {
                "type": "string"
              },
              "agirlik": {
                "type": "number",
                "minimum": 0,
                "maximum": 100
              },
              "aciklama": {
                "type": "string"
              }
            }
          }
        },
        "toplam_agirlik_kontrolu": {
          "type": "string",
          "const": "agirliklar toplami 100 olmalidir"
        }
      }
    },
    "itiraz": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "sure_gun",
        "kanal"
      ],
      "properties": {
        "sure_gun": {
          "type": "integer",
          "minimum": 1
        },
        "kanal": {
          "type": "string"
        },
        "inceleyen_rol": {
          "type": "string"
        }
      }
    },
    "yayin_tarihi": {
      "type": "string",
      "format": "date"
    },
    "son_kontrol": {
      "type": "string",
      "format": "date"
    },
    "sonraki_kontrol": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    }
  }
}
