<?php
require_once 'config.php';
require_once 'includes/Database.php';

$db = new Database();

echo "=== CRITERIA_SNAPSHOTS İNCELEMESİ ===\n\n";

// Ay bazında snapshot'ları göster
$snapshots = $db->fetchAll("
    SELECT year, month, COUNT(*) as count,
           MIN(created_at) as first_created,
           MAX(updated_at) as last_updated
    FROM criteria_snapshots
    GROUP BY year, month
    ORDER BY year DESC, month DESC
");

echo "Mevcut Snapshot'lar:\n";
echo str_repeat('-', 70) . "\n";
printf("%-12s %-15s %-25s %-25s\n", "Ay", "Kriter Sayısı", "İlk Oluşturma", "Son Güncelleme");
echo str_repeat('-', 70) . "\n";

foreach ($snapshots as $s) {
    $month = sprintf('%04d-%02d', $s['year'], $s['month']);
    printf("%-12s %-15d %-25s %-25s\n",
        $month,
        $s['count'],
        $s['first_created'],
        $s['last_updated']
    );
}

echo "\n=== SNAPSHOT OLUŞTURMA MEKANİZMASI ===\n\n";

echo "bonus.php'de şu kod çalışıyor:\n\n";
echo "1. Ay seçilir (örn: Ocak 2025)\n";
echo "2. Sistem kontrol eder: Bu ay için snapshot var mı?\n";
echo "   SQL: SELECT COUNT(*) FROM criteria_snapshots WHERE year=2025 AND month=1\n\n";
echo "3. Eğer snapshot YOKSA:\n";
echo "   • criteria tablosundan aktif kriterleri çeker\n";
echo "   • Her kriter için getCriteriaValueForDate() fonksiyonunu çağırır\n";
echo "   • criteria_history'de o tarih için özel değer var mı bakar\n";
echo "   • Varsa onu, yoksa criteria'daki varsayılan değeri kullanır\n";
echo "   • criteria_snapshots tablosuna INSERT eder\n\n";
echo "4. Eğer snapshot VARSA:\n";
echo "   • Hiçbir şey yapmaz, mevcut snapshot'ı kullanır\n\n";

echo "=== BİR AYI İLK KEZ SEÇTİĞİNİZDE NE OLUR? ===\n\n";

echo "Örnek: Şubat 2025'i ilk kez seçiyorsunuz\n\n";
echo "1. ✓ Snapshot kontrolü: 2025-02 için snapshot var mı? → YOK\n";
echo "2. ✓ Snapshot oluşturma başlıyor...\n";
echo "3. ✓ Criteria'dan aktif kriterler alınıyor (17 kriter)\n";
echo "4. ✓ Her kriter için değer belirleniyor:\n";
echo "      - egitim_orani: 2025-02-15 için değer ne?\n";
echo "        → history'ye bakıyor\n";
echo "        → Eğer history'de 2025-02-15'i kapsayan kayıt varsa onu\n";
echo "        → Yoksa criteria'daki varsayılanı alıyor\n";
echo "5. ✓ 17 INSERT sorgusu çalışıyor\n";
echo "6. ✓ criteria_snapshots tablosuna kaydediliyor\n";
echo "7. ✓ Artık bu ay için snapshot hazır!\n\n";

echo "Bir sonraki sefer Şubat 2025'i seçtiğinizde:\n";
echo "  → Snapshot kontrolü: VAR → Mevcut snapshot kullanılır, yeni oluşturulmaz\n\n";

// Şimdi Ocak 2025 için snapshot var mı kontrol edelim
$ocak2025 = $db->fetchOne("
    SELECT COUNT(*) as count
    FROM criteria_snapshots
    WHERE year = 2025 AND month = 1
");

echo "=== TEST: Ocak 2025 için snapshot var mı? ===\n";
if ($ocak2025 && $ocak2025['count'] > 0) {
    echo "✓ EVET - Ocak 2025 snapshot'ı mevcut ({$ocak2025['count']} kriter)\n";
    echo "  Ocak'ı seçtiğinizde YENİ snapshot oluşturulmaz, mevcut kullanılır\n";
} else {
    echo "✗ HAYIR - Ocak 2025 snapshot'ı YOK\n";
    echo "  Ocak'ı seçtiğinizde YENİ snapshot OLUŞTURULACAK\n";
}
