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

$db = new Database();

echo "=== TABLO YAPISI AÇIKLAMASI ===\n\n";

echo "1. CRITERIA TABLOSU (Ana Tanımlar)\n";
echo str_repeat('=', 50) . "\n";
echo "Görev: Kriterlerin VARSAYILAN tanımlarını tutar\n";
echo "Kullanım: Yeni kriter eklemek, düzenlemek, deaktive etmek\n\n";

$criteria = $db->fetchAll("SELECT code, name, point_value, is_active FROM criteria LIMIT 5");
echo "Örnek kayıtlar:\n";
foreach ($criteria as $c) {
    echo "  - {$c['name']} ({$c['code']}): {$c['point_value']} puan - " . ($c['is_active'] ? 'Aktif' : 'Pasif') . "\n";
}
echo "\n";

echo "2. CRITERIA_HISTORY TABLOSU (Tarih Bazlı Özel Değerler)\n";
echo str_repeat('=', 50) . "\n";
echo "Görev: Belirli tarih aralıklarında FARKLI değerler kullanmak için\n";
echo "Kullanım: Geçmişe kayıt girerken farklı oranlar uygulamak\n";
echo "Örnek: Ocak-Şubat 2025'te eğitim oranı %35, Mart'tan sonra %40\n\n";

$history = $db->fetchAll("SELECT * FROM criteria_history ORDER BY start_date");
echo "Mevcut kayıtlar:\n";
if (count($history) > 0) {
    foreach ($history as $h) {
        $endDate = $h['end_date'] ?? 'Süresiz';
        echo "  - {$h['criteria_code']}: {$h['point_value']} puan\n";
        echo "    Tarih: {$h['start_date']} ~ {$endDate}\n";
        echo "    Not: " . ($h['notes'] ?? '-') . "\n\n";
    }
} else {
    echo "  (Henüz kayıt yok)\n\n";
}

echo "3. CRITERIA_SNAPSHOTS TABLOSU (Aylık Donmuş Veriler)\n";
echo str_repeat('=', 50) . "\n";
echo "Görev: Her ay için o ayda GEÇERLİ OLAN değerlerin anlık görüntüsünü tutar\n";
echo "Kullanım: Geçmiş ayların verilerinin değişmemesini sağlamak\n";
echo "Neden: Gelecekte kriter değerleri değişse bile geçmiş hesaplamalar aynı kalsın\n\n";

$snapshots = $db->fetchAll("
    SELECT year, month, COUNT(*) as count
    FROM criteria_snapshots
    GROUP BY year, month
    ORDER BY year DESC, month DESC
    LIMIT 5
");

echo "Mevcut snapshot'lar:\n";
if (count($snapshots) > 0) {
    foreach ($snapshots as $s) {
        echo "  - {$s['year']}-" . str_pad($s['month'], 2, '0', STR_PAD_LEFT) . ": {$s['count']} kriter kaydı\n";
    }
} else {
    echo "  (Henüz snapshot yok)\n";
}

echo "\n";
echo "=== SİSTEM NASIL ÇALIŞIR? ===\n";
echo str_repeat('=', 50) . "\n\n";

echo "Adım 1: SNAPSHOT OLUŞTURMA (Ay ilk kez seçildiğinde)\n";
echo "  • bonus.php bir ay seçilir (örn: Şubat 2025)\n";
echo "  • Sistem o ay için snapshot var mı kontrol eder\n";
echo "  • Yoksa oluşturur:\n";
echo "    1. criteria_history'ye bakar: Bu tarih için özel değer var mı?\n";
echo "    2. Varsa onu kullanır, yoksa criteria'daki varsayılan değeri kullanır\n";
echo "    3. criteria_snapshots'a kaydeder\n\n";

echo "Adım 2: HESAPLAMA (Her bonus sayfası yüklendiğinde)\n";
echo "  • bonus.php seçili ayın snapshot'ından değerleri çeker\n";
echo "  • Bu değerlerle performans hesaplar\n";
echo "  • Artık criteria veya criteria_history değişse bile\n";
echo "    o ayın hesaplaması değişmez (snapshot'tan gelir)\n\n";

echo "=== ÖRNEK SENARYO ===\n";
echo str_repeat('=', 50) . "\n\n";

echo "1. Admin, criteria.php'de 'egitim_orani' için tarihçe ekler:\n";
echo "   • 2025-01-01 ~ 2025-02-29: 0.35 puan\n";
echo "   • 2025-03-01 ~ Süresiz: 0.40 puan\n\n";

echo "2. Kullanıcı bonus.php'de Ocak 2025'i seçer:\n";
echo "   • Sistem: 'Ocak için snapshot var mı?' → Hayır\n";
echo "   • Sistem: '2025-01-15 için egitim_orani değeri ne?' → history'ye bakar → 0.35 bulur\n";
echo "   • Snapshot oluşturulur: 2025-01 için egitim_orani = 0.35\n\n";

echo "3. Kullanıcı bonus.php'de Mart 2025'i seçer:\n";
echo "   • Sistem: 'Mart için snapshot var mı?' → Hayır\n";
echo "   • Sistem: '2025-03-15 için egitim_orani değeri ne?' → history'ye bakar → 0.40 bulur\n";
echo "   • Snapshot oluşturulur: 2025-03 için egitim_orani = 0.40\n\n";

echo "4. Sonraki ay admin eğitim oranını 0.50 yapar:\n";
echo "   • Ocak ve Mart'ın snapshot'ları DEĞİŞMEZ (0.35 ve 0.40 olarak kalır)\n";
echo "   • Nisan 2025 ilk kez seçildiğinde 0.50 ile snapshot oluşturulur\n\n";

echo "=== ÖZET ===\n";
echo str_repeat('=', 50) . "\n";
echo "criteria          → Şu anki varsayılan değerler\n";
echo "criteria_history  → Geçmişteki farklı değerler (tarih bazlı)\n";
echo "criteria_snapshots → Her ay için donmuş değerler (değişmez)\n";
