<?php
/**
 * Динамический sitemap.xml
 * Путь: /public/sitemap.php → переименовать в sitemap.xml
 * или настроить через .htaccess: RewriteRule ^sitemap\.xml$ sitemap.php [L]
 */

declare(strict_types=1);

require_once __DIR__ . '/../includes/config.php';
require_once __DIR__ . '/../includes/db.php';

header('Content-Type: application/xml; charset=UTF-8');

$base_url = rtrim(SITE_URL, '/');
$today    = date('Y-m-d');

// Статичные страницы
$static_pages = [
    ['loc' => '/',             'priority' => '1.0', 'changefreq' => 'daily'],
    ['loc' => '/portfolio.php','priority' => '0.9', 'changefreq' => 'weekly'],
    ['loc' => '/pricing.php',  'priority' => '0.8', 'changefreq' => 'monthly'],
    ['loc' => '/order.php',    'priority' => '0.9', 'changefreq' => 'monthly'],
    ['loc' => '/contacts.php', 'priority' => '0.7', 'changefreq' => 'monthly'],
];

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

foreach ($static_pages as $page) {
    echo '  <url>' . PHP_EOL;
    echo '    <loc>' . htmlspecialchars($base_url . $page['loc'], ENT_QUOTES, 'UTF-8') . '</loc>' . PHP_EOL;
    echo '    <lastmod>' . $today . '</lastmod>' . PHP_EOL;
    echo '    <changefreq>' . $page['changefreq'] . '</changefreq>' . PHP_EOL;
    echo '    <priority>' . $page['priority'] . '</priority>' . PHP_EOL;
    echo '  </url>' . PHP_EOL;
}

// Категории портфолио
try {
    $db         = Database::getInstance();
    $categories = $db->fetchAll("SELECT slug FROM track_categories WHERE id IN (SELECT DISTINCT category_id FROM tracks WHERE is_active=1)");
    foreach ($categories as $cat) {
        echo '  <url>' . PHP_EOL;
        echo '    <loc>' . htmlspecialchars($base_url . '/portfolio.php?category=' . $cat['slug'], ENT_QUOTES, 'UTF-8') . '</loc>' . PHP_EOL;
        echo '    <lastmod>' . $today . '</lastmod>' . PHP_EOL;
        echo '    <changefreq>weekly</changefreq>' . PHP_EOL;
        echo '    <priority>0.7</priority>' . PHP_EOL;
        echo '  </url>' . PHP_EOL;
    }
} catch (Exception $e) {
    // Игнорируем
}

echo '</urlset>' . PHP_EOL;