<?php
session_start();
header('Content-Type: application/json');
include '../config/database.php';
$db = new Database();
$conn = $db->getConnection();

$id = $_POST['id'] ?? '';
$foto_lama = $_POST['foto_lama'] ?? '';

// AMBIL FOTO LAMA DARI DB KALO EDIT
$foto_gereja = $foto_lama;
if(!empty($id) && empty($_FILES['foto_gereja']['name'])){
    $cek = $conn->prepare("SELECT foto_gereja FROM gereja WHERE id=?");
    $cek->execute([$id]);
    $foto_gereja = $cek->fetchColumn() ?: ''; // PAKE FOTO DB, BUKAN gereja.png
}

// KALO ADA UPLOAD FOTO BARU
if(!empty($_FILES['foto_gereja']['name']) && $_FILES['foto_gereja']['error'] == 0){
    $ext = strtolower(pathinfo($_FILES['foto_gereja']['name'], PATHINFO_EXTENSION));
    $allow = ['jpg','jpeg','png','webp'];
    
    if(in_array($ext, $allow)){
        $foto_gereja = 'gereja_'.time().'.'.$ext;
        $upload = move_uploaded_file($_FILES['foto_gereja']['tmp_name'], '../assets/img/gereja/'.$foto_gereja);
        
        // HAPUS FOTO LAMA KALO SUKSES UPLOAD & BUKAN DEFAULT
        if($upload && $foto_lama && $foto_lama != 'default.jpg' && file_exists('../assets/img/gereja/'.$foto_lama)){
            unlink('../assets/img/gereja/'.$foto_lama);
        }
        
        // KALO GAGAL UPLOAD, BALIKIN KE FOTO LAMA
        if(!$upload) $foto_gereja = $foto_lama;
    }
}

$data = [
    'nama_gereja' => $_POST['nama_gereja'],
    'alamat' => $_POST['alamat'] ?: NULL,
    'distrik' => $_POST['distrik'],
    'latitude' => $_POST['latitude'] ?: NULL,
    'longitude' => $_POST['longitude'] ?: NULL,
    'gembala_id' => $_POST['gembala_id'] ?: NULL,
    'tahun_berdiri' => $_POST['tahun_berdiri'] ?: NULL,
    'foto_gereja' => $foto_gereja ?: NULL, // BOLEH NULL KALO EMANG KOSONG
    'status' => $_POST['status']
];

try {
    if(empty($id)){
        $sql = "INSERT INTO gereja (".implode(',',array_keys($data)).") VALUES (:".implode(',:',array_keys($data)).")";
    } else {
        $sql = "UPDATE gereja SET ";
        foreach($data as $k=>$v){ $sql .= "$k=:$k,"; }
        $sql = rtrim($sql,',')." WHERE id=:id";
        $data['id'] = $id;
    }

    $stmt = $conn->prepare($sql);
    $ok = $stmt->execute($data);
    
    echo json_encode(['status'=>$ok?'success':'error','message'=>$ok?'Data gereja disimpan':'Gagal simpan data']);
} catch(PDOException $e){
    echo json_encode(['status'=>'error','message'=>'Database error: '.$e->getMessage()]);
}
?>