<?php
session_start();
if (!isset($_SESSION['user_id'])) {
    echo json_encode(["status" => "error", "pesan" => "Akses ditolak. Silakan login."]);
    exit;
}
// =============================================
// api_laporan.php
// Menerima laporan publik dari lapor.php
// Status awal: "menunggu" (belum tampil di peta)
// =============================================

header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');

// ——— KONEKSI DATABASE ———
// Sesuaikan dengan konfigurasi Laragon kamu
$host = getenv('DB_HOST') ?: 'localhost';
$user = getenv('DB_USER') ?: 'root';
$pass = getenv('DB_PASSWORD') ?: '';
$db   = getenv('DB_NAME') ?: 'webgis_baru';
$port = getenv('DB_PORT') ?: '3306';

$conn = new mysqli($host, $user, $pass, $db, $port);
if ($conn->connect_error) {
    echo json_encode(['status' => 'error', 'pesan' => 'Koneksi database gagal']);
    exit;
}
$conn->set_charset('utf8mb4');

// ——— PASTIKAN TABEL LAPORAN ADA ———
// Tabel ini terpisah dari warga_miskin.
// Data masuk dulu ke sini, operator verifikasi,
// baru dipindahkan ke warga_miskin.
$conn->query("
    CREATE TABLE IF NOT EXISTS laporan_publik (
        id                  INT AUTO_INCREMENT PRIMARY KEY,
        lat                 DECIMAL(10,7) NOT NULL,
        lng                 DECIMAL(10,7) NOT NULL,
        nama_kk             VARCHAR(255)  NOT NULL,
        jumlah_anggota      INT           NOT NULL,
        alamat              TEXT          NOT NULL,
        tanggal_lahir       DATE          NULL,
        pendidikan_terakhir ENUM('Tidak Sekolah','SD','SMP','SMA','D3','S1','S2','S3') NULL,
        pekerjaan           VARCHAR(100)  NULL,
        riwayat_penyakit    TEXT          NULL,
        kepemilikan_jaminan ENUM('BPJS Kesehatan','KIS','BPJS Ketenagakerjaan','Tidak Ada') NULL,
        nama_pelapor        VARCHAR(255)  NOT NULL,
        hp_pelapor          VARCHAR(20)   NULL,
        hubungan_pelapor    VARCHAR(50)   NULL,
        keterangan          TEXT          NULL,
        status              ENUM('menunggu','disetujui','ditolak') DEFAULT 'menunggu',
        created_at          TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
");

// ——— VALIDASI INPUT ———
$lat            = floatval($_POST['lat']            ?? 0);
$lng            = floatval($_POST['lng']            ?? 0);
$nama_kk        = trim($conn->real_escape_string($_POST['nama_kk']        ?? ''));
$jumlah_anggota = intval($_POST['jumlah_anggota']   ?? 0);
$alamat         = trim($conn->real_escape_string($_POST['alamat']          ?? ''));
$nama_pelapor   = trim($conn->real_escape_string($_POST['nama_pelapor']    ?? ''));

if (!$lat || !$lng || !$nama_kk || $jumlah_anggota < 1 || !$alamat || !$nama_pelapor) {
    echo json_encode(['status' => 'error', 'pesan' => 'Data wajib tidak lengkap']);
    exit;
}

// ——— DATA OPSIONAL ———
$tgl_lahir   = !empty($_POST['tanggal_lahir']) ? "'" . $conn->real_escape_string($_POST['tanggal_lahir']) . "'" : 'NULL';
$pendidikan  = !empty($_POST['pendidikan_terakhir']) ? "'" . $conn->real_escape_string($_POST['pendidikan_terakhir']) . "'" : 'NULL';
$pekerjaan   = trim($conn->real_escape_string($_POST['pekerjaan']       ?? ''));
$penyakit    = trim($conn->real_escape_string($_POST['riwayat_penyakit'] ?? ''));
$jaminan     = !empty($_POST['kepemilikan_jaminan']) ? "'" . $conn->real_escape_string($_POST['kepemilikan_jaminan']) . "'" : 'NULL';
$hp          = trim($conn->real_escape_string($_POST['hp_pelapor']      ?? ''));
$hubungan    = trim($conn->real_escape_string($_POST['hubungan_pelapor'] ?? ''));
$keterangan  = trim($conn->real_escape_string($_POST['keterangan']       ?? ''));

// ——— INSERT ———
$sql = "
    INSERT INTO laporan_publik
        (lat, lng, nama_kk, jumlah_anggota, alamat,
         tanggal_lahir, pendidikan_terakhir, pekerjaan,
         riwayat_penyakit, kepemilikan_jaminan,
         nama_pelapor, hp_pelapor, hubungan_pelapor, keterangan, status)
    VALUES
        ($lat, $lng, '$nama_kk', $jumlah_anggota, '$alamat',
         $tgl_lahir, $pendidikan, '$pekerjaan',
         '$penyakit', $jaminan,
         '$nama_pelapor', '$hp', '$hubungan', '$keterangan', 'menunggu')
";

if ($conn->query($sql)) {
    $newId = $conn->insert_id;
    echo json_encode(['status' => 'ok', 'id' => $newId]);
} else {
    echo json_encode(['status' => 'error', 'pesan' => 'Gagal menyimpan: ' . $conn->error]);
}

$conn->close();
?>