<?php
// sitemap.xml - dynamicky generovaný
header('Content-Type: application/xml; charset=utf-8');

require_once 'includes/config.php';
require_once 'includes/db.php';
require_once 'includes/functions.php';

$baseUrl = SITE_URL;

echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";

// Homepage
echo '  <url>' . "\n";
echo '    <loc>' . $baseUrl . '</loc>' . "\n";
echo '    <lastmod>' . date('Y-m-d') . '</lastmod>' . "\n";
echo '    <changefreq>weekly</changefreq>' . "\n";
echo '    <priority>1.0</priority>' . "\n";
echo '  </url>' . "\n";

// Blog
echo '  <url>' . "\n";
echo '    <loc>' . $baseUrl . '/blog</loc>' . "\n";
echo '    <lastmod>' . date('Y-m-d') . '</lastmod>' . "\n";
echo '    <changefreq>weekly</changefreq>' . "\n";
echo '    <priority>0.9</priority>' . "\n";
echo '  </url>' . "\n";

// Blog posts
try {
    $posts = dba()->fetchAll('SELECT slug, updated_at FROM posts WHERE status = "published" ORDER BY updated_at DESC');
    foreach ($posts as $post) {
        echo '  <url>' . "\n";
        echo '    <loc>' . $baseUrl . '/blog/' . urlencode($post['slug']) . '</loc>' . "\n";
        echo '    <lastmod>' . (new DateTime($post['updated_at']))->format('Y-m-d') . '</lastmod>' . "\n";
        echo '    <changefreq>monthly</changefreq>' . "\n";
        echo '    <priority>0.8</priority>' . "\n";
        echo '  </url>' . "\n";
    }
} catch (Exception $e) {}

// Case studies
echo '  <url>' . "\n";
echo '    <loc>' . $baseUrl . '/studie</loc>' . "\n";
echo '    <lastmod>' . date('Y-m-d') . '</lastmod>' . "\n";
echo '    <changefreq>monthly</changefreq>' . "\n";
echo '    <priority>0.9</priority>' . "\n";
echo '  </url>' . "\n";

try {
    $studies = dba()->fetchAll('SELECT slug FROM case_studies WHERE is_active = 1 ORDER BY created_at DESC');
    foreach ($studies as $study) {
        echo '  <url>' . "\n";
        echo '    <loc>' . $baseUrl . '/studie/' . urlencode($study['slug']) . '</loc>' . "\n";
        echo '    <lastmod>' . date('Y-m-d') . '</lastmod>' . "\n";
        echo '    <changefreq>monthly</changefreq>' . "\n";
        echo '    <priority>0.8</priority>' . "\n";
        echo '  </url>' . "\n";
    }
} catch (Exception $e) {}

// Static pages
try {
    $pages = dba()->fetchAll('SELECT slug, updated_at FROM pages WHERE is_active = 1 ORDER BY updated_at DESC');
    foreach ($pages as $page) {
        echo '  <url>' . "\n";
        echo '    <loc>' . $baseUrl . '/' . urlencode($page['slug']) . '</loc>' . "\n";
        echo '    <lastmod>' . (new DateTime($page['updated_at']))->format('Y-m-d') . '</lastmod>' . "\n";
        echo '    <changefreq>monthly</changefreq>' . "\n";
        echo '    <priority>0.7</priority>' . "\n";
        echo '  </url>' . "\n";
    }
} catch (Exception $e) {}

echo '</urlset>';
?>
