{
  "openapi": "3.1.0",
  "info": {
    "title": "SmartGov Executive Macro-Fiscal & Sectoral API",
    "version": "2.5.0",
    "description": "Dokumentasi Antarmuka Pemrograman Aplikasi (RESTful API) Resmi SmartGov Kabupaten Tanah Bumbu. Mendukung 32 modul data makro pembangunan, simulasi kebijakan fiskal APBD, audit keselarasan OPD, penyelarasan target SDGs, proyeksi demografi peserta didik wajar 9 tahun berbasis UU No. 23/2014, dan asistensi AI terintegrasi.",
    "contact": {
      "name": "Pusat Inovasi Manajemen Kinerja & Transformasi Digital Daerah",
      "email": "diskominfo@tanahbumbukab.go.id",
      "url": "https://smartgov.tanahbumbukab.go.id"
    },
    "license": {
      "name": "Hak Cipta Pemerintah Daerah Kabupaten Tanah Bumbu 2026",
      "url": "https://tanahbumbukab.go.id"
    }
  },
  "servers": [
    {
      "url": "http://localhost/smartgov/api",
      "description": "Server Pengembangan Lokal (Localhost XAMPP)"
    },
    {
      "url": "https://smartgov.tanahbumbukab.go.id/api",
      "description": "Server Produksi Pemkab Tanah Bumbu (SPBE Terpadu)"
    }
  ],
  "tags": [
    {
      "name": "Pusat Komando Eksekutif & Intelijen",
      "description": "Modul analitik prediktif bupati: proyeksi pendidikan, simulator fiskal, EWS, memo rapim, audit OPD, dan peta spasial."
    },
    {
      "name": "Arah Kebijakan & Tata Kelola Fiskal",
      "description": "Modul indikator RPJMD, visi misi, SWOT, pagu APBD, kewenangan UU 23/2014, profil SKPD, dan benchmarking."
    },
    {
      "name": "Pusat Data Master Sektoral",
      "description": "Master data 152 desa/kelurahan: sekolah, faskes, jalan/jembatan, stunting, perikanan, pertanian, kebencanaan, dll."
    },
    {
      "name": "Konfigurasi & Keamanan",
      "description": "Manajemen hak akses pengguna, backup/restore basis data, dan konfigurasi secret key AI."
    },
    {
      "name": "Master SKPD & Cross-Cutting Kolaboratif",
      "description": "Pengelolaan unit kerja daerah (Dinas, Badan, Kecamatan, Kelurahan/Desa), Mandatory Spending UU HKPD, serta Matriks Sinergi Cross-Cutting Antar-SKPD (Permendagri 86/2017 & Perpres 72/2021)."
    }
  ],
  "paths": {
    "/admin.php?module=proyeksi_peserta_didik": {
      "get": {
        "tags": [
          "Pusat Komando Eksekutif & Intelijen"
        ],
        "summary": "Proyeksi Kohort Demografi Peserta Didik & Daya Tampung Sekolah (Wajar 9 Tahun)",
        "description": "Menghitung penuaan kohort usia tunggal 0-18 tahun per desa dan memadankan dengan kapasitas daya tampung 613 sekolah per koordinat desa/kecamatan sesuai UU No. 23/2014 dan SPM Permendikbud 22/2016.",
        "parameters": [
          {
            "name": "years_ahead",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 0,
              "maximum": 10
            },
            "description": "Horizon waktu proyeksi ke depan (0 = tahun dasar 2026, 1 = 2027 s.d. 10 = 2036)"
          },
          {
            "name": "daerah_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1
            },
            "description": "ID wilayah kabupaten (default: 1 untuk Tanah Bumbu)"
          }
        ],
        "responses": {
          "200": {
            "description": "Hasil simulasi kohort dan neraca daya tampung per desa dan kecamatan",
            "content": {
              "application/json": {
                "example": {
                  "status": "success",
                  "base_year": 2026,
                  "target_year": 2027,
                  "years_ahead": 1,
                  "ringkasan_kabupaten": {
                    "proyeksi_sd_7_12": 39698,
                    "proyeksi_smp_13_15": 20660,
                    "kapasitas_sd": 42952,
                    "kapasitas_smp": 15776,
                    "surplus_defisit_sd": 3254,
                    "surplus_defisit_smp": -4884,
                    "kebutuhan_rkb_smp": 153,
                    "kebutuhan_guru_smp_spm": 258,
                    "gap_transisi_sd_ke_smp": 4884
                  },
                  "rekap_kecamatan": [
                    {
                      "nama_kecamatan": "Kusan Hilir",
                      "proyeksi_sd": 4120,
                      "proyeksi_smp": 2180,
                      "kapasitas_smp": 1440,
                      "surplus_defisit_smp": -740,
                      "status_smp": "Kritis",
                      "kebutuhan_rkb_smp": 24
                    }
                  ],
                  "data_desa": [
                    {
                      "desa_id": 1,
                      "nama_desa": "Pagarruyung",
                      "nama_kecamatan": "Kusan Hilir",
                      "sd_anak": 312,
                      "sekolah_sd": 2,
                      "smp_anak": 156,
                      "sekolah_smp": 0,
                      "status_smp": "Blank Spot (0 SMP)"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/admin.php?module=simulator": {
      "get": {
        "tags": [
          "Pusat Komando Eksekutif & Intelijen"
        ],
        "summary": "Simulator Fiskal APBD & Uji Skenario Makro (What-If Analysis)",
        "description": "Menghitung simulasi instan dampak kenaikan PAD, efisiensi belanja modal/operasi, dan pembiayaan defisit terhadap Ruang Fiskal Bebas Bersih (*Net Free Fiscal Space*).",
        "parameters": [
          {
            "name": "pad_pct",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 10
            },
            "description": "Persentase target intensifikasi PAD (%)"
          },
          {
            "name": "efisiensi_pct",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 5
            },
            "description": "Persentase efisiensi belanja barang/jasa & perdin (%)"
          }
        ],
        "responses": {
          "200": {
            "description": "Output skenario fiskal baseline vs simulasi",
            "content": {
              "application/json": {
                "example": {
                  "status": "success",
                  "ruang_fiskal_baseline_miliar": 320.5,
                  "ruang_fiskal_simulasi_miliar": 384.2,
                  "tambahan_kapasitas_fiskal_miliar": 63.7
                }
              }
            }
          }
        }
      }
    },
    "/admin.php?module=cascading": {
      "get": {
        "tags": [
          "Pusat Komando Eksekutif & Intelijen"
        ],
        "summary": "Audit Keselarasan OPD (Deteksi Program Siluman Renstra vs Renja)",
        "description": "Menelusuri keterkaitan logis vertikal program OPD dari Visi Bupati hingga sub-kegiatan SIPD dan mengidentifikasi sub-kegiatan non-prioritas yang tidak memiliki dasar dokumen RPJMD.",
        "responses": {
          "200": {
            "description": "Daftar pohon cascading dan indikasi program siluman"
          }
        }
      }
    },
    "/admin.php?module=sdgs": {
      "get": {
        "tags": [
          "Pusat Komando Eksekutif & Intelijen"
        ],
        "summary": "Penyelarasan Target Capaian 17 Pilar SDGs / TPB Nasional",
        "description": "Mengintegrasikan pelaporan indikator kinerja makro daerah ke 17 Pilar Tujuan Pembangunan Berkelanjutan (TPB) untuk laporan LKPJ Bappenas.",
        "responses": {
          "200": {
            "description": "Data 17 Goal SDGs, persentase capaian, dan indeks kesiapan LKPJ"
          }
        }
      }
    },
    "/admin.php?module=rpjmd": {
      "get": {
        "tags": [
          "Arah Kebijakan & Tata Kelola Fiskal"
        ],
        "summary": "Indikator Sasaran Strategis & Capaian Kinerja RPJMD",
        "description": "Mengambil target dan realisasi indikator makro daerah (Pertumbuhan Ekonomi, IPM, Gini Ratio, Tingkat Kemiskinan, Pengangguran Terbuka).",
        "parameters": [
          {
            "name": "tahun",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 2026
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Daftar indikator sasaran RPJMD beserta status ketercapaian"
          }
        }
      }
    },
    "/admin.php?module=pagu": {
      "get": {
        "tags": [
          "Arah Kebijakan & Tata Kelola Fiskal"
        ],
        "summary": "Pagu Alokasi APBD, Belanja Modal & Kemandirian Fiskal",
        "description": "Mengambil postur makro APBD: Belanja Operasi, Belanja Modal, Belanja Tidak Terduga, Transfer ke Desa, Pendapatan Asli Daerah (PAD), dan Derajat Desentralisasi Fiskal.",
        "responses": {
          "200": {
            "description": "Rincian pagu APBD tahun berjalan"
          }
        }
      }
    },
    "/admin.php?module=sekolah": {
      "get": {
        "tags": [
          "Pusat Data Master Sektoral"
        ],
        "summary": "Data Master 613 Satuan Pendidikan & Sarana Prasarana",
        "description": "Mengambil master data sekolah (PAUD/TK, SD, SMP, PKBM) lengkap dengan NPSN, akreditasi, jumlah siswa L/P, jumlah guru, rombel, ruang kelas, dan koordinat GPS.",
        "parameters": [
          {
            "name": "jenjang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ALL",
                "TK",
                "KB",
                "SD",
                "SMP"
              ]
            }
          },
          {
            "name": "kecamatan",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Daftar satuan pendidikan dan sarpras"
          }
        }
      }
    },
    "/admin.php?module=usia": {
      "get": {
        "tags": [
          "Pusat Data Master Sektoral"
        ],
        "summary": "Distribusi Kohort Penduduk per Usia Tunggal 152 Desa",
        "description": "Mengambil data demografi kohort usia 0 s.d. 120 tahun per jenis kelamin di 152 desa se-Kabupaten Tanah Bumbu.",
        "responses": {
          "200": {
            "description": "Tabel distribusi penduduk per usia tunggal"
          }
        }
      }
    },
    "/admin.php?module=jalan_jembatan": {
      "get": {
        "tags": [
          "Pusat Data Master Sektoral"
        ],
        "summary": "Kondisi Kemantapan Ruas Jalan & Jembatan Poros Desa (Dinas PUPR)",
        "description": "Mengambil data panjang ruas jalan kabupaten (km), jenis permukaan aspal/hotmix, status kemantapan (Baik/Sedang/Rusak), dan jembatan.",
        "responses": {
          "200": {
            "description": "Daftar ruas jalan kabupaten dan jembatan"
          }
        }
      }
    },
    "/admin.php?module=stunting": {
      "get": {
        "tags": [
          "Pusat Data Master Sektoral"
        ],
        "summary": "Prevalensi Stunting & Penetapan Lokus Prioritas Desa (Dinkes)",
        "description": "Data penimbangan balita, jumlah balita stunting, prevalensi persentase, sanitasi jamban sehat, air bersih, dan intervensi PMT.",
        "responses": {
          "200": {
            "description": "Daftar lokus stunting dan indikator intervensi"
          }
        }
      }
    },
    "/admin.php?module=perikanan": {
      "get": {
        "tags": [
          "Pusat Data Master Sektoral"
        ],
        "summary": "Statistik Kelautan & Perikanan Tangkap/Budidaya Maritim",
        "description": "Data jumlah nelayan, armada kapal motor, hasil produksi tangkapan laut & tambak (ton/tahun), nilai produksi, dan TPI.",
        "responses": {
          "200": {
            "description": "Daftar data kelautan & perikanan"
          }
        }
      }
    },
    "/admin.php?module=chat_ai": {
      "post": {
        "tags": [
          "Pusat Komando Eksekutif & Intelijen"
        ],
        "summary": "Konsultasi Asisten Tanya Data AI Eksekutif (Grounded LLM)",
        "description": "Mengirimkan pertanyaan seputar data daerah dan menerima jawaban analisis cerdas yang terikat batas yuridis UU No. 23/2014 & data riil 32 modul.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "message": {
                    "type": "string",
                    "example": "Berapa defisit ruang kelas SMP di Kecamatan Kusan Hilir dan rekomendasinya?"
                  }
                },
                "required": [
                  "message"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Jawaban naratif AI berbasis fakta data daerah",
            "content": {
              "application/json": {
                "example": {
                  "status": "success",
                  "reply": "Berdasarkan simulasi kohort demografi pendidikan tahun 2027, Kecamatan Kusan Hilir mengalami defisit 740 kursi SMP. Dibutuhkan penambahan 24 Ruang Kelas Baru (RKB) SMP melalui DAK Fisik/APBD..."
                }
              }
            }
          }
        }
      }
    },
    "/admin.php?module=skpd": {
      "get": {
        "tags": [
          "Master SKPD & Cross-Cutting Kolaboratif"
        ],
        "summary": "Mendapatkan Daftar SKPD atau Matriks Cross-Cutting Antar SKPD",
        "description": "Mengambil master unit kerja daerah atau matriks konvergensi cross-cutting antar OPD berdasarkan parameter action.",
        "parameters": [
          {
            "name": "daerah_id",
            "in": "query",
            "description": "ID Daerah (Default: 1 untuk Kab. Tanah Bumbu)",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "action",
            "in": "query",
            "description": "Aksi query data: kosong untuk list SKPD reguler, atau \"crosscutting\" untuk matriks konvergensi lintas OPD",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "list",
                "crosscutting"
              ],
              "default": "list"
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Filter tingkatan unit kerja (hanya untuk action list)",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ALL",
                "Kabupaten",
                "Kecamatan",
                "Kelurahan/Desa"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berhasil memuat data SKPD / Matriks Cross-Cutting",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "success"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "summary": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Master SKPD & Cross-Cutting Kolaboratif"
        ],
        "summary": "Menyimpan atau Mengelola Program Cross-Cutting Antar SKPD / Alokasi Pagu",
        "description": "Mendukung penyimpanan program tematik konvergensi (action: save_crosscutting), penghapusan program (action: delete_crosscutting), atau pembaruan pagu mandatory.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "example": "save_crosscutting"
                  },
                  "id": {
                    "type": "integer",
                    "nullable": true
                  },
                  "nama_tematik": {
                    "type": "string",
                    "example": "Konvergensi Penurunan Stunting Terintegrasi"
                  },
                  "kategori_isu": {
                    "type": "string",
                    "example": "Kesehatan & Penurunan Stunting"
                  },
                  "deskripsi_tujuan": {
                    "type": "string"
                  },
                  "skpd_koordinator_nama": {
                    "type": "string",
                    "example": "Dinas Kesehatan"
                  },
                  "skpd_mitra_json": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  },
                  "total_anggaran_miliar": {
                    "type": "number",
                    "example": 84.5
                  },
                  "target_kinerja_bersama": {
                    "type": "string",
                    "example": "Prevalensi Stunting < 14%"
                  },
                  "indikator_outcome": {
                    "type": "string",
                    "example": "Prevalensi Balita Stunting"
                  },
                  "lokus_wilayah": {
                    "type": "string",
                    "example": "55 Desa Prioritas"
                  },
                  "status_keselarasan": {
                    "type": "string",
                    "example": "Aktif Kolaboratif"
                  },
                  "tahun": {
                    "type": "integer",
                    "example": 2026
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operasi berhasil disimpan",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "success"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}