<?php
// /public_html/sitemap.php
// Dinamik Sitemap Generator

header('Content-Type: application/xml; charset=utf-8');
header('X-Robots-Tag: noindex'); // Sitemap'in kendisi indexlenmesin

// Config yükle
require_once __DIR__ . '/config.php';

// Veritabanı bağlantısı
try {
    $db = new PDO(
        "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4",
        DB_USER,
        DB_PASS,
        [PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC]
    );
} catch (Exception $e) {
    // Hata durumunda basit XML döndür
    echo '<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></urlset>';
    exit;
}

$baseUrl = BASE_URL;
$now = date('c');

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

// 1. ANA SAYFA
echo "  <url>\n";
echo "    <loc>{$baseUrl}/</loc>\n";
echo "    <lastmod>" . date('c') . "</lastmod>\n";
echo "    <changefreq>daily</changefreq>\n";
echo "    <priority>1.0</priority>\n";
echo "  </url>\n";

// 2. STATİK SAYFALAR (pages tablosu)
try {
    $stmt = $db->query("SELECT slug, updated_at FROM pages WHERE status = 'published' ORDER BY updated_at DESC");
    while ($row = $stmt->fetch()) {
        $slug = htmlspecialchars($row['slug']);
        $lastmod = !empty($row['updated_at']) ? date('c', strtotime($row['updated_at'])) : $now;
        echo "  <url>\n";
        echo "    <loc>{$baseUrl}/{$slug}</loc>\n";
        echo "    <lastmod>{$lastmod}</lastmod>\n";
        echo "    <changefreq>monthly</changefreq>\n";
        echo "    <priority>0.8</priority>\n";
        echo "  </url>\n";
    }
} catch (Exception $e) {}

// 3. BLOG ANA SAYFA
echo "  <url>\n";
echo "    <loc>{$baseUrl}/blog</loc>\n";
echo "    <lastmod>{$now}</lastmod>\n";
echo "    <changefreq>daily</changefreq>\n";
echo "    <priority>0.9</priority>\n";
echo "  </url>\n";

// 4. BLOG YAZILARI (blog_posts tablosu)
try {
    $stmt = $db->query("SELECT slug, updated_at FROM blog_posts WHERE status = 'published' ORDER BY updated_at DESC LIMIT 100");
    while ($row = $stmt->fetch()) {
        $slug = htmlspecialchars($row['slug']);
        $lastmod = !empty($row['updated_at']) ? date('c', strtotime($row['updated_at'])) : $now;
        echo "  <url>\n";
        echo "    <loc>{$baseUrl}/blog/{$slug}</loc>\n";
        echo "    <lastmod>{$lastmod}</lastmod>\n";
        echo "    <changefreq>weekly</changefreq>\n";
        echo "    <priority>0.7</priority>\n";
        echo "  </url>\n";
    }
} catch (Exception $e) {}

echo "</urlset>\n";
?>