-- =============================================
-- Script untuk Konversi Data Excel ke Format Import
-- Database: sipracika
-- =============================================
--
-- LANGKAH-LANGKAH:
--
-- 1. EKSPOR DATA DARI EXCEL KE CSV
--    - Buka file Excel yang berisi data Realisasi
--    - Save As -> CSV (Comma delimited)
--    - Simpan dengan nama: jamban_terapung_raw.csv
--
-- 2. PREPARE DATA DI EXCEL/SPREADSHEET
--    Buat kolom baru dengan mapping:
--    - KECAMATAN -> kecamatan_id (cari ID dari tabel kecamatan)
--    - LOKASI -> desa_id (cari ID dari tabel desa)
--    - DAK -> kegiatan_id untuk DAK (cari ID dari tabel p_kegiatan)
--    - HIBAH -> kegiatan_id untuk HIBAH (cari ID dari tabel p_kegiatan)
--    - Nilai Realisasi -> jumlah_jamban_terapung_dihapus
--
-- 3. TRANSFORM DATA
--    Setiap baris di Excel perlu dipecah menjadi beberapa baris:
--    - Jika ada nilai DAK dan HIBAH di tahun yang sama, buat 2 baris terpisah
--    - Format: kecamatan_id, tahun, kegiatan_id, desa_id, jumlah_jamban_terapung_dihapus
--
-- 4. CONTOH TRANSFORMASI:
--    Excel Row:
--    | KECAMATAN | LOKASI | Realisasi 2019 DAK | Realisasi 2019 HIBAH |
--    | Sungai Tabuk | Keliling Benteng Ilir | 15 | 0 |
--
--    Menjadi CSV rows:
--    kecamatan_id,2019,kegiatan_id_DAK,desa_id_keliling_benteng_ilir,15
--
-- 5. IMPORT KE DATABASE
--    Gunakan script import_jamban_terapung_template.sql
--
-- =============================================
-- QUERY UNTUK MENDAPATKAN MAPPING ID
-- =============================================

-- 1. Cari ID Kecamatan
SELECT 
    id AS kecamatan_id,
    nama_kecamatan,
    CONCAT('UPDATE: kecamatan_id = ', id, ' untuk "', nama_kecamatan, '"') AS mapping_info
FROM kecamatan
WHERE nama_kecamatan LIKE '%Sungai Tabuk%'
ORDER BY nama_kecamatan;

-- 2. Cari ID Kegiatan (DAK dan HIBAH)
SELECT 
    id AS kegiatan_id,
    nama_kegiatan,
    CONCAT('UPDATE: kegiatan_id = ', id, ' untuk "', nama_kegiatan, '"') AS mapping_info
FROM p_kegiatan
WHERE nama_kegiatan LIKE '%DAK%' 
   OR nama_kegiatan LIKE '%HIBAH%'
   OR nama_kegiatan LIKE '%Dana Alokasi%'
   OR nama_kegiatan LIKE '%Hibah%'
ORDER BY nama_kegiatan;

-- 3. Cari ID Desa berdasarkan Kecamatan
SELECT 
    d.id AS desa_id,
    d.nama_desa AS lokasi,
    k.id AS kecamatan_id,
    k.nama_kecamatan,
    CONCAT('UPDATE: desa_id = ', d.id, ' untuk lokasi "', d.nama_desa, '" di kecamatan "', k.nama_kecamatan, '"') AS mapping_info
FROM desa d
JOIN kecamatan k ON d.kecamatan_id = k.id
WHERE k.nama_kecamatan LIKE '%Sungai Tabuk%'
ORDER BY d.nama_desa;

-- =============================================
-- CONTOH INSERT STATEMENT (setelah mapping)
-- =============================================

-- Contoh: Data untuk Keliling Benteng Ilir, tahun 2019, DAK = 15
-- (Ganti ID dengan ID yang sesuai dari query di atas)
/*
INSERT INTO jamban_terapung 
    (kecamatan_id, tahun, kegiatan_id, desa_id, jumlah_jamban_terapung_dihapus, foto, created_at, updated_at)
VALUES 
    (1, 2019, 1, 1, 15, '[]', NOW(), NOW());
*/

-- =============================================
-- VALIDASI DATA SETELAH IMPORT
-- =============================================

-- Cek data yang sudah diimport
SELECT 
    jt.id,
    k.nama_kecamatan,
    d.nama_desa,
    jt.tahun,
    kg.nama_kegiatan,
    jt.jumlah_jamban_terapung_dihapus
FROM jamban_terapung jt
JOIN kecamatan k ON jt.kecamatan_id = k.id
JOIN desa d ON jt.desa_id = d.id
JOIN p_kegiatan kg ON jt.kegiatan_id = kg.id
WHERE jt.tahun BETWEEN 2017 AND 2024
ORDER BY jt.tahun, k.nama_kecamatan, d.nama_desa;

-- =============================================
-- Selesai
-- =============================================

