<?php
session_start();
if (!isset($_SESSION['user_id'])) {
    echo json_encode(["status" => "error", "pesan" => "Akses ditolak. Silakan login."]);
    exit;
}
include 'koneksi.php';
$aksi = $_GET['aksi'];

include 'koneksi.php';
$aksi = $_GET['aksi'];

// 🛡️ PROTEKSI KEAMANAN GLOBAL UNTUK WARGA
$role_aktif = $_SESSION['role'] ?? 'warga';

// Jika aksi adalah sesuatu yang merubah data (simpan, update, hapus)
if (in_array($aksi, ['simpan', 'update', 'hapus', 'update_lokasi', 'simpan_bantuan', 'update_bantuan', 'hapus_bantuan'])) {
    
    // Blokir total jika role-nya adalah warga atau walikota
    if ($role_aktif === 'warga' || $role_aktif === 'walikota') {
        echo "Gagal: Akses ditolak. Warga hanya diizinkan untuk melihat data dan melakukan donasi.";
        exit;
    }
}

if ($aksi == 'tampil') {
    $result = $conn->query("SELECT * FROM rumah_ibadah");
    $data = array();
    while($row = $result->fetch_assoc()) { $data[] = $row; }
    echo json_encode($data);

} elseif ($aksi == 'simpan') {
    $nama = $conn->real_escape_string($_POST['nama_tempat'] ?? ''); 
    // Tangkap kategori dari formulir
    $kategori = $conn->real_escape_string($_POST['kategori'] ?? 'Masjid'); 
    $pic = $conn->real_escape_string($_POST['pic'] ?? ''); 
    $alamat = $conn->real_escape_string($_POST['alamat'] ?? ''); 
    $radius = intval($_POST['radius'] ?? 500);
    $lat = floatval($_POST['lat'] ?? 0); 
    $lng = floatval($_POST['lng'] ?? 0);

    if ($nama === '' || $lat === 0 || $lng === 0) {
        echo "Gagal: Nama tempat dan koordinat tidak boleh kosong.";
        exit;
    }

    // Masukkan kategori ke dalam query INSERT
    $sql = "INSERT INTO rumah_ibadah (nama_tempat, kategori, pic, alamat, radius, lat, lng) 
            VALUES ('$nama', '$kategori', '$pic', '$alamat', $radius, $lat, $lng)";
            
    if ($conn->query($sql)) {
        echo "Sukses";
    } else {
        echo "Gagal: " . $conn->error;
    }

} elseif ($aksi == 'hapus') {
    $id = intval($_POST['id'] ?? 0);
    if($conn->query("DELETE FROM rumah_ibadah WHERE id=$id")) echo "Sukses"; else echo "Gagal";

} elseif ($aksi == 'update') {
    $role = $_SESSION['role'] ?? '';
    $session_masjid = $_SESSION['nama_masjid'] ?? '';
    
    $id = intval($_POST['id'] ?? 0);
    $nama_tempat = $conn->real_escape_string($_POST['nama_tempat'] ?? '');
    // Tangkap kategori saat proses edit
    $kategori = $conn->real_escape_string($_POST['kategori'] ?? 'Masjid');
    $pic = $conn->real_escape_string($_POST['pic'] ?? '');
    $alamat = $conn->real_escape_string($_POST['alamat'] ?? '');
    $radius = intval($_POST['radius'] ?? 500);

    if ($role === 'pengurus_masjid') {
        $cek = $conn->query("SELECT nama_tempat FROM rumah_ibadah WHERE id = $id")->fetch_assoc();
        if (!$cek || $cek['nama_tempat'] !== $session_masjid) {
            echo "Gagal: Anda tidak memiliki wewenang mengedit data masjid lain.";
            exit;
        }
    } elseif ($role !== 'admin') {
        echo "Gagal: Akses ditolak.";
        exit;
    }

    // Masukkan kategori ke dalam query UPDATE
    $sql = "UPDATE rumah_ibadah SET nama_tempat='$nama_tempat', kategori='$kategori', pic='$pic', alamat='$alamat', radius=$radius WHERE id=$id";
    
    if ($conn->query($sql)) {
        echo "Sukses";
    } else {
        echo "Gagal: " . $conn->error;
    }
    exit;

} elseif ($aksi == 'update_lokasi') {
    $id = intval($_POST['id'] ?? 0); 
    $lat = floatval($_POST['lat'] ?? 0); 
    $lng = floatval($_POST['lng'] ?? 0);
    if($conn->query("UPDATE rumah_ibadah SET lat=$lat, lng=$lng WHERE id=$id")) echo "Sukses"; else echo "Gagal";
}
$conn->close();
?>