<?php
// Sayfanın bir XML dosyası olduğunu tarayıcılara ve Google'a bildiriyoruz
header("Content-Type: application/xml; charset=utf-8");

// Veritabanı bağlantını içeri aktarıyoruz
require_once 'includes/db.php'; 

// NOT: includes/db.php içindeki veritabanı değişkeninin adının $db olduğunu varsayıyorum.
global $db; 

$baseUrl = "https://www.sinavkocu.tr/magaza/";

echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";

// 1. Sabit Ana Sayfa Bağlantısı
echo "  <url>\n";
echo "    <loc>" . $baseUrl . "index.php</loc>\n";
echo "    <changefreq>daily</changefreq>\n";
echo "    <priority>1.0</priority>\n";
echo "  </url>\n";

// 1.5. Blog Ana Sayfa Bağlantısı (YENİ EKLENDİ)
echo "  <url>\n";
echo "    <loc>" . $baseUrl . "blog.php</loc>\n";
echo "    <changefreq>daily</changefreq>\n";
echo "    <priority>0.9</priority>\n";
echo "  </url>\n";

try {
    // 2. Aktif Ürünleri Veritabanından Çekiyoruz (status = 1 olanlar)
    $urunler = $db->query("SELECT slug, created_at FROM products WHERE status = 1")->fetchAll(PDO::FETCH_ASSOC);
    foreach ($urunler as $urun) {
        $tarih = date('c', strtotime($urun['created_at']));
        echo "  <url>\n";
        echo "    <loc>" . $baseUrl . "urun/" . htmlspecialchars($urun['slug']) . "</loc>\n";
        echo "    <lastmod>" . $tarih . "</lastmod>\n";
        echo "    <changefreq>weekly</changefreq>\n";
        echo "    <priority>0.8</priority>\n";
        echo "  </url>\n";
    }

    // 3. Aktif Ürün Kategorilerini Çekiyoruz
    $kategoriler = $db->query("SELECT slug FROM categories WHERE status = 1")->fetchAll(PDO::FETCH_ASSOC);
    foreach ($kategoriler as $kat) {
        echo "  <url>\n";
        echo "    <loc>" . $baseUrl . "kategori/" . htmlspecialchars($kat['slug']) . "</loc>\n";
        echo "    <changefreq>weekly</changefreq>\n";
        echo "    <priority>0.7</priority>\n";
        echo "  </url>\n";
    }

    // 4. Statik Sayfaları Çekiyoruz (Hakkımızda, Sözleşmeler vs.)
    $sayfalar = $db->query("SELECT slug, updated_at FROM pages WHERE status = 1")->fetchAll(PDO::FETCH_ASSOC);
    foreach ($sayfalar as $sayfa) {
        $sayfaTarih = date('c', strtotime($sayfa['updated_at']));
        echo "  <url>\n";
        echo "    <loc>" . $baseUrl . "sayfa/" . htmlspecialchars($sayfa['slug']) . "</loc>\n";
        echo "    <lastmod>" . $sayfaTarih . "</lastmod>\n";
        echo "    <changefreq>monthly</changefreq>\n";
        echo "    <priority>0.5</priority>\n";
        echo "  </url>\n";
    }

    // 5. Aktif Blog Yazılarını Çekiyoruz (YENİ EKLENDİ)
    $bloglar = $db->query("SELECT slug, created_at FROM blogs WHERE status = 1")->fetchAll(PDO::FETCH_ASSOC);
    foreach ($bloglar as $blog) {
        $blogTarih = date('c', strtotime($blog['created_at']));
        echo "  <url>\n";
        // Daha önce .htaccess'e eklediğimiz site.com/blog/yazi-slugi yapısı
        echo "    <loc>" . $baseUrl . "blog/" . htmlspecialchars($blog['slug']) . "</loc>\n";
        echo "    <lastmod>" . $blogTarih . "</lastmod>\n";
        echo "    <changefreq>weekly</changefreq>\n";
        echo "    <priority>0.8</priority>\n";
        echo "  </url>\n";
    }

    // 6. Aktif Blog Kategorilerini Çekiyoruz (YENİ EKLENDİ)
    $blogKategoriler = $db->query("SELECT slug FROM blog_categories WHERE status = 1")->fetchAll(PDO::FETCH_ASSOC);
    foreach ($blogKategoriler as $bKat) {
        echo "  <url>\n";
        // Daha önce .htaccess'e eklediğimiz site.com/blog/kategori/kategori-slugi yapısı
        echo "    <loc>" . $baseUrl . "blog/kategori/" . htmlspecialchars($bKat['slug']) . "</loc>\n";
        echo "    <changefreq>weekly</changefreq>\n";
        echo "    <priority>0.7</priority>\n";
        echo "  </url>\n";
    }

} catch (PDOException $e) {
    // Veritabanı hatası olursa XML yapısını bozmamak için hatayı arka planda logluyoruz
    error_log("Sitemap Hatası: " . $e->getMessage());
}

echo '</urlset>';
?>