<?php
require __DIR__ . '/app/lib/helpers.php';
require __DIR__ . '/app/lib/data.php';
header('Content-Type: application/xml; charset=UTF-8');

$miFile = __DIR__ . '/modules/mi/data/public.json';
$miMtime = @filemtime($miFile) ?: time();
$data = mi_public_data();

$entries = [];
$entries[] = ['url' => origin_url('/'), 'priority' => '1.0', 'lastmod' => $miMtime];
$entries[] = ['url' => module_url(), 'priority' => '0.9', 'lastmod' => $miMtime];
foreach ($data['records'] ?? [] as $r) $entries[] = ['url' => module_url('/i/' . $r['slug']), 'priority' => '0.7', 'lastmod' => $miMtime];
foreach ($data['categories'] ?? [] as $c) $entries[] = ['url' => module_url('/c/' . $c['slug']), 'priority' => '0.7', 'lastmod' => $miMtime];
foreach ($data['questions'] ?? [] as $q) $entries[] = ['url' => module_url('/q/' . $q['slug']), 'priority' => '0.7', 'lastmod' => $miMtime];

$entries[] = ['url' => ds_url(), 'priority' => '0.9', 'lastmod' => $miMtime];
foreach (ds_destinations() as $destination) {
    $entries[] = ['url' => ds_url('/' . $destination['slug']), 'priority' => '0.7', 'lastmod' => (int)($destination['_mtime'] ?? time())];
}

echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
foreach ($entries as $entry) {
    echo '<url><loc>' . htmlspecialchars($entry['url'], ENT_XML1) . '</loc>'
        . '<lastmod>' . gmdate('Y-m-d', $entry['lastmod']) . '</lastmod>'
        . '<changefreq>monthly</changefreq><priority>' . $entry['priority'] . '</priority></url>' . "\n";
}
echo '</urlset>';
