<?php
// Pastikan file koneksi sudah di-include untuk mengakses $conn
include_once 'config/koneksi.php';

// Atur header agar browser tahu bahwa responsnya adalah JSON
header('Content-Type: application/json');

// Tangkap parameter dari permintaan AJAX
$level = $_GET['level'] ?? '';
$keyword = $_GET['keyword'] ?? '';
$tahun_aktif_id = intval($_GET['tahun_aktif_id'] ?? 0);
$detail_id = intval($_GET['detail_id'] ?? 0); // Untuk fungsi get_hierarki_detail

// Struktur default untuk Select2 (Penting: harus selalu di-echo)
$response = ['results' => []];

// =======================================================
// FUNGSI 1: MENCARI DETAIL KEGIATAN (Dipanggil oleh Select2)
// =======================================================
if ($level === 'search_detail_kegiatan') {
    // Select2 hanya akan memanggil AJAX jika tahun_aktif_id > 0 dan keyword minimal 3 karakter
    if ($tahun_aktif_id > 0 && strlen($keyword) >= 3) {
        
        // Query untuk mencari Detail Kegiatan berdasarkan keyword dan tahun aktif
        $sql = "SELECT id, nama_detail
                FROM detail_kegiatan 
                WHERE tahun_aktif_id = ? 
                AND nama_detail LIKE ? 
                LIMIT 10"; // Batasi hasil

        $stmt = $conn->prepare($sql);
        $search_keyword = "%" . $keyword . "%";
        $stmt->bind_param("is", $tahun_aktif_id, $search_keyword);
        $stmt->execute();
        $result = $stmt->get_result();
        
        $data = [];
        while ($row = $result->fetch_assoc()) {
            // Format output sesuai yang dibutuhkan Select2 (id dan text)
            $data[] = ['id' => $row['id'], 'text' => $row['nama_detail']];
        }
        
        $response = ['results' => $data];
        $stmt->close();

    } elseif ($tahun_aktif_id <= 0) {
        // Jika tahun aktif belum diatur, kirim respons kosong
        $response = ['results' => [], 'message' => 'Tahun Aktif belum diatur.'];
    }
}

// =======================================================
// FUNGSI 2: MENGAMBIL HIERARKI LENGKAP (Dipanggil saat item dipilih)
// =======================================================
elseif ($level === 'get_hierarki_detail' && $detail_id > 0) {
    // Query untuk mengambil semua hierarki berdasarkan Detail ID
    $sql_hierarki = "SELECT 
                        dk.id AS detail_id, dk.nama_detail,
                        sk.nama_subkomponen, k.nama_komponen, 
                        sub.nama_subkegiatan, keg.nama_kegiatan, prog.nama_program
                    FROM detail_kegiatan dk
                    JOIN subkomponen sk ON dk.subkomponen_id = sk.id
                    JOIN komponen k ON sk.komponen_id = k.id
                    JOIN subkegiatan sub ON k.subkegiatan_id = sub.id
                    JOIN kegiatan keg ON sub.kegiatan_id = keg.id
                    JOIN program prog ON keg.program_id = prog.id
                    WHERE dk.id = ?";
                    
    $stmt_hierarki = $conn->prepare($sql_hierarki);
    $stmt_hierarki->bind_param("i", $detail_id);
    $stmt_hierarki->execute();
    $result_hierarki = $stmt_hierarki->get_result();
    
    if ($result_hierarki->num_rows > 0) {
        $row = $result_hierarki->fetch_assoc();
        $response = [
            'success' => true,
            'detail_nama' => $row['nama_detail'],
            'subkomponen_nama' => $row['nama_subkomponen'],
            'komponen_nama' => $row['nama_komponen'],
            'subkegiatan_nama' => $row['nama_subkegiatan'],
            'kegiatan_nama' => $row['nama_kegiatan'],
            'program_nama' => $row['nama_program']
        ];
    } else {
        $response = ['success' => false, 'message' => 'Hierarki tidak ditemukan.'];
    }
    $stmt_hierarki->close();
}


// Output JSON
echo json_encode($response);

// $conn->close(); // Tutup koneksi jika Anda mau.
// Pastikan tidak ada tag penutup PHP ?> di sini, atau pastikan itu adalah baris terakhir