<?php
header('Content-Type: application/json; charset=utf-8');
require_once __DIR__ . '/includes/db.php';

$data = json_decode(file_get_contents('php://input'), true);

if (empty($data) || !isset($data['tarih']) || !isset($data['guzergah_id'])) {
    echo json_encode(['success' => false, 'message' => 'Eksik parametre.']);
    http_response_code(400);
    exit;
}

$tarih = $data['tarih'];
$guzergah_id = $data['guzergah_id'];
$ucret = $data['ucret'] ?? 0;
$aciklama = $data['aciklama'] ?? '';

// "İşe Gidilmedi" güzergahının ID'sini çek (silme mantığı için gerekli)
$iseGidilmediId = null;
try {
    $stmt_guzergah = $conn->query("SELECT id FROM guzergahlar WHERE guzergah_adi = 'İşe Gidilmedi'");
    $result_guzergah = $stmt_guzergah->fetch(PDO::FETCH_ASSOC);
    if ($result_guzergah) {
        $iseGidilmediId = $result_guzergah['id'];
    } else {
        throw new Exception("'İşe Gidilmedi' güzergahı veritabanında bulunamadı.");
    }
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['success' => false, 'message' => 'Sistem hatası: ' . $e->getMessage()]);
    exit;
}


// Silme mantığı:
$should_delete = false;
// Eğer gönderilen güzergah, özel "İşe Gidilmedi" güzergahı değilse (yani bir seyahat masrafı)
if ($guzergah_id != $iseGidilmediId) {
    if ($ucret === null) { // Seyahat masrafı için hücre boşsa (null gönderildiyse) sil
        $should_delete = true;
    }
} 
// Eğer gönderilen güzergah özel "İşe Gidilmedi" güzergahı ise (yani bir durum/izin kaydı)
elseif ($guzergah_id == $iseGidilmediId) {
    if (empty(trim($aciklama))) { // Açıklama boşsa sil
        $should_delete = true;
    }
}

if ($should_delete) {
    try {
        $stmt = $conn->prepare("DELETE FROM seyahatler WHERE tarih = :tarih AND guzergah_id = :guzergah_id");
        $stmt->execute([':tarih' => $tarih, ':guzergah_id' => $guzergah_id]);
        echo json_encode(['success' => true, 'message' => 'Kayıt silindi.']);
        exit;
    } catch (Exception $e) {
        http_response_code(500);
        echo json_encode(['success' => false, 'message' => 'Silme hatası: ' . $e->getMessage()]);
        exit;
    }
}

// UPSERT (INSERT ON DUPLICATE KEY UPDATE) işlemi
$sql = "INSERT INTO seyahatler (tarih, guzergah_id, ucret, aciklama) 
        VALUES (:tarih, :guzergah_id, :ucret, :aciklama)
        ON DUPLICATE KEY UPDATE 
        ucret = VALUES(ucret), 
        aciklama = VALUES(aciklama)";

try {
    $stmt = $conn->prepare($sql);
    $stmt->execute([':tarih' => $tarih, ':guzergah_id' => $guzergah_id, ':ucret' => $ucret, ':aciklama' => $aciklama]);
    echo json_encode(['success' => true, 'message' => 'Kaydedildi.']);
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['success' => false, 'message' => 'Kayıt hatası: ' . $e->getMessage()]);
}
