<?php
/* ============================================================
   sitemap-xml.php — نقشهٔ سایت XML (پویا + مقالات مجله)
   با قانون بازنویسی در .htaccess روی آدرس /sitemap.xml سرو می‌شود
   ============================================================ */
require_once __DIR__ . '/inc/bootstrap.php';

header('Content-Type: application/xml; charset=UTF-8');

/* صفحات ثابت — slug ، اولویت، تناوب تغییر */
$pages = array(
    array('',                    '1.0', 'weekly'),
    array('about.php',           '0.8', 'monthly'),
    array('home-collection.php', '0.9', 'monthly'),
    array('magazine.php',        '0.9', 'weekly'),
    array('contact.php',         '0.7', 'monthly'),
    array('login.php',           '0.6', 'yearly'),
);

$today = date('Y-m-d');

echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
foreach ($pages as $p) {
    echo "  <url>\n";
    echo '    <loc>' . e(SITE_URL . $p[0]) . "</loc>\n";
    echo '    <lastmod>' . $today . "</lastmod>\n";
    echo '    <changefreq>' . $p[2] . "</changefreq>\n";
    echo '    <priority>' . $p[1] . "</priority>\n";
    echo "  </url>\n";
}

/* مقالات منتشرشدهٔ مجله */
try {
    $q = db()->query("SELECT slug, published_at, updated_at FROM articles
                      WHERE active = 1 AND published_at <= CURDATE()
                      ORDER BY published_at DESC");
    foreach ($q as $a) {
        $mod = $a['updated_at'] ? substr((string)$a['updated_at'], 0, 10) : (string)$a['published_at'];
        echo "  <url>\n";
        echo '    <loc>' . e(SITE_URL . 'article.php?s=' . $a['slug']) . "</loc>\n";
        echo '    <lastmod>' . e($mod) . "</lastmod>\n";
        echo "    <changefreq>monthly</changefreq>\n";
        echo "    <priority>0.7</priority>\n";
        echo "  </url>\n";
    }
} catch (Throwable $ex) {
    /* اگر جدول articles هنوز ساخته نشده باشد، نقشهٔ سایت پایه سالم می‌ماند */
}

echo '</urlset>';