<?php
// admin/denemesonuc/sonuc-ekle.php
require_once '../../includes/db.php'; 

// --- ÖRNEK ŞABLON İNDİRME İŞLEMİ BURADA BAŞLIYOR ---
if (isset($_GET['sablon_indir'])) {
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename="ornek_sablon.csv"');
    
    $output = fopen('php://output', 'w');
    // Excel'de Türkçe karakterlerin (Ş, Ğ, Ç vb.) bozuk çıkmaması için BOM (Byte Order Mark) ekliyoruz
    fputs($output, chr(0xEF) . chr(0xBB) . chr(0xBF));
    
    // 1. Satır: Başlıklar (Noktalı virgül ile ayırıyoruz)
    fputcsv($output, ['Ders Adı', 'Konu Adı', 'Doğru Cevap', 'A Soru No', 'B Soru No', 'C Soru No', 'D Soru No'], ';');
    
    // 2. ve 3. Satır: Admin için örnek veriler
    fputcsv($output, ['Türkçe (TYT)', 'Paragrafta Anlam', 'C', '1', '5', '12', '8'], ';');
    fputcsv($output, ['Matematik (TYT)', 'Üslü Sayılar', 'A', '1', '7', '2', '14'], ';');
    
    fclose($output);
    exit; // İndirme bitince sayfanın geri kalanını yüklemeden çık
}
// --- ÖRNEK ŞABLON İNDİRME İŞLEMİ BURADA BİTİYOR ---

require_once '../header.php';

// CEVAP ANAHTARI GİRİLMEMİŞ (Bekleyen) TEKLİ DENEMELERİ ÇEK
$sql_bekleyen = "SELECT p.id, p.name, p.exam_type, p.exam_publication_date, b.name as brand_name 
        FROM products p 
        LEFT JOIN brands b ON p.brand_id = b.id 
        LEFT JOIN exam_analysis_exams e ON p.id = e.product_id
        WHERE p.type = 'single_exam' AND p.status = 1 AND e.id IS NULL
        ORDER BY p.exam_type ASC, p.id DESC";
$bekleyenler = $db->query($sql_bekleyen)->fetchAll(PDO::FETCH_ASSOC);

// MANUEL GİRİŞ İÇİN DERS VE KONULARI ÇEK VE JSON YAP
$konular_query = $db->query("SELECT id, ders, konu FROM konular ORDER BY ders ASC, konu ASC")->fetchAll(PDO::FETCH_ASSOC);
$ders_konu_haritasi = [];
foreach($konular_query as $row) {
    if(!isset($ders_konu_haritasi[$row['ders']])) {
        $ders_konu_haritasi[$row['ders']] = [];
    }
    $ders_konu_haritasi[$row['ders']][] = ['id' => $row['id'], 'konu' => $row['konu']];
}
$json_ders_konu = json_encode($ders_konu_haritasi, JSON_UNESCAPED_UNICODE);
?>

<style>
    /* Ders Sekmeleri (Hap Butonlar) İçin Kesin Görünüm Kuralları */
    #lessonTabs .nav-link {
        color: #495057 !important; /* Pasifken koyu gri yazı */
        background-color: #f8f9fa !important; /* Pasifken açık gri arkaplan */
        border: 1px solid #dee2e6 !important; /* Pasifken ince çerçeve */
        border-radius: 50px !important;
        margin-right: 10px;
        margin-bottom: 10px;
        transition: all 0.2s ease;
    }
    #lessonTabs .nav-link.active {
        color: #ffffff !important; /* Aktifken beyaz yazı */
        background-color: #0d6efd !important; /* Aktifken mavi arkaplan */
        border-color: #0d6efd !important;
    }
    #lessonTabs .nav-link:hover {
        background-color: #e9ecef !important; /* Üzerine gelince hafif koyulaşma */
    }
</style>

<div class="container-fluid mt-4">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <h2><i class="bi bi-plus-circle-dotted text-primary"></i> Yeni Cevap Anahtarı Ekle</h2>
        <div>
            <a href="girilmis-denemeler.php" class="btn btn-outline-success"><i class="bi bi-list-check"></i> Girilmiş Denemeler</a>
            <a href="index.php" class="btn btn-secondary"><i class="bi bi-arrow-left"></i> Geri Dön</a>
        </div>
    </div>
    <hr>

    <div class="card shadow-sm border-primary mb-4">
        <div class="card-body p-4">
            <h5 class="card-title text-primary mb-3">1. İşlem Yapılacak Denemeyi Seçin</h5>
            <select name="new_product_id" id="new_product_id" class="form-select form-select-lg border-primary">
                <option value="" data-type="">-- Bekleyen Bir Deneme Seçin --</option>
                <?php 
                $current_type = '';
                foreach($bekleyenler as $deneme): 
                    if($current_type != $deneme['exam_type']) {
                        if($current_type != '') echo '</optgroup>';
                        $current_type = $deneme['exam_type'];
                        echo "<optgroup label='{$current_type} Denemeleri'>";
                    }
                    $brand = $deneme['brand_name'] ? $deneme['brand_name'] : 'Markasız';
                    $pub_date = $deneme['exam_publication_date'] ? " ({$deneme['exam_publication_date']})" : "";
                    $option_text = "{$brand} - {$deneme['name']}{$pub_date}";
                ?>
                    <option value="<?= $deneme['id'] ?>" data-type="<?= $deneme['exam_type'] ?>"><?= htmlspecialchars($option_text) ?></option>
                <?php endforeach; echo '</optgroup>'; ?>
            </select>
        </div>
    </div>

    <div id="islemAlani" style="display:none;" class="mb-5">
        <h4 class="text-dark border-bottom pb-2 mb-3" id="islemBaslik">İşlem Yapılıyor...</h4>
        
        <ul class="nav nav-tabs" id="myTab" role="tablist">
            <li class="nav-item" role="presentation">
                <button class="nav-link fw-bold" id="excel-tab" data-bs-toggle="tab" data-bs-target="#excel" type="button" role="tab"><i class="bi bi-file-earmark-excel text-success"></i> Hızlı Excel (CSV) Yükle</button>
            </li>
            <li class="nav-item" role="presentation">
                <button class="nav-link active fw-bold" id="manuel-tab" data-bs-toggle="tab" data-bs-target="#manuel" type="button" role="tab"><i class="bi bi-ui-checks text-primary"></i> Akıllı Manuel Şablon</button>
            </li>
        </ul>
        
        <div class="tab-content border border-top-0 p-4 bg-white shadow-sm" id="myTabContent">
            
            <div class="tab-pane fade" id="excel" role="tabpanel">
                <div class="alert alert-info d-flex justify-content-between align-items-center">
                    <span><strong>Öneri:</strong> Yüzlerce soruyu manuel girmek yerine örnek şablonu indirip doldurarak tek seferde yükleyebilirsiniz.</span>
                    <a href="?sablon_indir=1" class="btn btn-outline-info btn-sm text-nowrap ms-3"><i class="bi bi-download"></i> Örnek Şablon İndir</a>
                </div>
                <form action="excel-eslestir.php" method="POST" enctype="multipart/form-data" class="mt-4">
                    <input type="hidden" name="secilen_product_id" id="excel_product_id">
                    <div class="mb-4">
                        <label class="form-label fw-bold">Cevap Anahtarı Dosyası (.csv Formatında)</label>
                        <input type="file" name="csv_file" class="form-control form-control-lg" accept=".csv" required>
                    </div>
                    <button type="submit" class="btn btn-success btn-lg"><i class="bi bi-magic"></i> Dosyayı Yükle ve Akıllı Eşleştirmeyi Başlat</button>
                </form>
            </div>

            <div class="tab-pane fade show active" id="manuel" role="tabpanel">
                <form id="manuelGirisForm" action="manuel-kaydet.php" method="POST">
                    <input type="hidden" name="product_id" id="manuel_product_id">
                    
                    <div class="alert alert-light border py-2 px-3 mb-4">
                        <i class="bi bi-info-circle text-primary"></i> <strong>Bilgi:</strong> Seçtiğiniz sınav türüne göre dersler ve soru sayıları otomatik oluşturuldu. Konuları ve cevapları seçerek kaydedebilirsiniz. Listede olmayan konular için "Yeni Konu Yaz" diyebilirsiniz.
                    </div>
                    
                    <ul class="nav nav-pills mb-3" id="lessonTabs" role="tablist">
                    </ul>
                    
                    <div class="tab-content" id="lessonTabsContent">
                    </div>

                    <div class="text-end mt-4 pt-3 border-top">
                        <button type="submit" class="btn btn-success btn-lg px-5"><i class="bi bi-save"></i> Tüm Derslerin Cevaplarını Kaydet</button>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>

<script>
    const veriHavuzu = <?= $json_ders_konu ?>;

    // ÖSYM ve MEB Soru Dağılımları (Senin konular tablosundaki Ders Adlarına göre)
    const sinavSablonlari = {
        'TYT': {
            'Türkçe (TYT)': 40,
            'Tarih (TYT)': 5,
            'Coğrafya (TYT)': 5,
            'Felsefe (TYT)': 5,
            'Din Kültürü (TYT)': 5,
            'Matematik (TYT)': 40,
            'Fizik (TYT)': 7,
            'Kimya (TYT)': 7,
            'Biyoloji (TYT)': 6
        },
        'LGS': {
            'LGS Türkçe': 20,
            'LGS T.C. İnkılap Tarihi ve Atatürkçülük': 10,
            'LGS Din Kültürü ve Ahlak Bilgisi': 10,
            'LGS İngilizce': 10,
            'LGS Matematik': 20,
            'LGS Fen Bilimleri': 20
        },
        'AYT': {
            'Türk Dili ve Edebiyatı (AYT)': 24,
            'Tarih – 1 (AYT)': 10,
            'Coğrafya – 1 (AYT)': 6,
            'Tarih – 2 (AYT)': 11,
            'Coğrafya – 2 (AYT)': 11,
            'Felsefe (AYT)': 12,
            'Din Kültürü ve Ahlak Bilgisi (AYT)': 6,
            'Mantık (AYT)': 0, // İsteğe bağlı
            'Psikoloji (AYT)': 0, // İsteğe bağlı
            'Sosyoloji (AYT)': 0, // İsteğe bağlı
            'Matematik (AYT)': 40,
            'Geometri (AYT)': 0, // Genelde Matematik içinde
            'Fizik (AYT)': 14,
            'Kimya (AYT)': 13,
            'Biyoloji (AYT)': 13
        }
    };
</script>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const islemAlani = document.getElementById('islemAlani');
    const islemBaslik = document.getElementById('islemBaslik');
    const inputExcel = document.getElementById('excel_product_id');
    const inputManuel = document.getElementById('manuel_product_id');
    const lessonTabs = document.getElementById('lessonTabs');
    const lessonTabsContent = document.getElementById('lessonTabsContent');

    // Deneme Seçildiğinde Şablonu Oluştur
    document.getElementById('new_product_id').addEventListener('change', function() {
        let val = this.value;
        let opt = this.options[this.selectedIndex];
        let examType = opt.getAttribute('data-type');

        if(val && examType) {
            islemBaslik.innerHTML = "Seçilen Deneme: <span class='text-secondary'>" + opt.text + "</span>";
            islemAlani.style.display = 'block';
            inputExcel.value = val;
            inputManuel.value = val;
            
            // Seçilen türe göre (TYT, LGS, AYT) sekmeleri oluştur
            renderManualGrid(examType);
        } else {
            islemAlani.style.display = 'none';
        }
    });

    let globalRowIndex = 0;
    
    function renderManualGrid(examType) {
        lessonTabs.innerHTML = '';
        lessonTabsContent.innerHTML = '';
        let isFirst = true;

        const sablon = sinavSablonlari[examType];
        
        for (const [dersAdi, soruSayisi] of Object.entries(sablon)) {
            if(soruSayisi === 0) continue; // Soru sayısı 0 olanları atla

            let tabId = "tab_" + dersAdi.replace(/[^a-zA-Z0-9]/g, "");
            let activeClass = isFirst ? 'active' : '';
            let showClass = isFirst ? 'show active' : '';

            // Sekme Butonu
            lessonTabs.innerHTML += `
                <li class="nav-item" role="presentation">
                    <button class="nav-link ${activeClass} fw-bold px-4 py-2" id="${tabId}-tab" data-bs-toggle="pill" data-bs-target="#${tabId}" type="button" role="tab">
                        ${dersAdi} <span class="badge bg-secondary ms-1">${soruSayisi}</span>
                    </button>
                </li>
            `;

            // Konu Seçenekleri (Sadece o derse ait konuları getir)
            let konuOptions = '<option value="">-- Konu Seç --</option>';
            if(veriHavuzu[dersAdi]) {
                veriHavuzu[dersAdi].forEach(function(k) {
                    konuOptions += `<option value="${k.id}">${k.konu}</option>`;
                });
            }
            konuOptions += `<option value="YENI" class="fw-bold text-primary bg-light">++ Listede Yok (Yeni Konu Yaz) ++</option>`;

            // O ders için tablo satırlarını oluştur
            let tableRows = '';
            for (let i = 1; i <= soruSayisi; i++) {
                tableRows += `
                <tr>
                    <td class="align-middle fw-bold text-secondary">
                        Soru ${i}
                        <input type="hidden" name="sorular[${globalRowIndex}][ders]" value="${dersAdi}">
                        <input type="hidden" name="sorular[${globalRowIndex}][a_no]" value="${i}">
                    </td>
                    <td>
                        <select name="sorular[${globalRowIndex}][konu_id]" class="form-select form-select-sm select-konu" required>
                            ${konuOptions}
                        </select>
                        <input type="text" name="sorular[${globalRowIndex}][yeni_konu]" class="form-control form-control-sm mt-1 input-yeni-konu" placeholder="Yeni Konu Adı" style="display:none;" disabled>
                    </td>
                    <td>
                        <select name="sorular[${globalRowIndex}][cevap]" class="form-select form-select-sm fw-bold text-success" required>
                            <option value="">Seç</option><option value="A">A</option><option value="B">B</option><option value="C">C</option><option value="D">D</option><option value="E">E</option>
                        </select>
                    </td>
                    <td><input type="number" name="sorular[${globalRowIndex}][b_no]" class="form-control form-control-sm text-center" placeholder="Opsiyonel"></td>
                    <td><input type="number" name="sorular[${globalRowIndex}][c_no]" class="form-control form-control-sm text-center" placeholder="Opsiyonel"></td>
                    <td><input type="number" name="sorular[${globalRowIndex}][d_no]" class="form-control form-control-sm text-center" placeholder="Opsiyonel"></td>
                </tr>
                `;
                globalRowIndex++;
            }

            // İçerik Alanı
            lessonTabsContent.innerHTML += `
                <div class="tab-pane fade ${showClass}" id="${tabId}" role="tabpanel">
                    <div class="table-responsive border rounded p-2">
                        <table class="table table-bordered table-hover table-sm text-center align-middle mb-0">
                            <thead class="table-light">
                                <tr>
                                    <th width="10%" class="py-2">Soru</th>
                                    <th width="40%" class="py-2">Konu Seçimi</th>
                                    <th width="10%" class="py-2">D. Cevap</th>
                                    <th width="10%" class="py-2">B Kitapçığı</th>
                                    <th width="10%" class="py-2">C Kitapçığı</th>
                                    <th width="10%" class="py-2">D Kitapçığı</th>
                                </tr>
                            </thead>
                            <tbody>
                                ${tableRows}
                            </tbody>
                        </table>
                    </div>
                </div>
            `;
            isFirst = false;
        }
    }

    // Yeni Konu Seçilirse Input'u Aç
    lessonTabsContent.addEventListener('change', function(e) {
        if(e.target.classList.contains('select-konu')) {
            let tr = e.target.closest('tr');
            let inputYeni = tr.querySelector('.input-yeni-konu');
            
            if(e.target.value === 'YENI') {
                inputYeni.style.display = 'block';
                inputYeni.disabled = false;
                inputYeni.focus();
            } else {
                inputYeni.style.display = 'none';
                inputYeni.disabled = true;
            }
        }
    });

});
</script>

<?php require_once '../footer.php'; ?>