<?php
require_once __DIR__ . '/config/rutas.php';
require_once __DIR__ . '/modelos/ProductoModel.php';
require_once __DIR__ . '/modelos/CategoriaModel.php';

header('Content-Type: application/xml; charset=utf-8');

$baseUrl = rtrim(BASE_URL, '/') . '/';
$productoModel = new ProductoModel();
$categoriaModel = new CategoriaModel();

$urls = [];

$addUrl = static function (string $loc, ?string $lastmod = null) use (&$urls): void {
    $urls[] = [
        'loc' => $loc,
        'lastmod' => $lastmod,
    ];
};

$addUrl($baseUrl);
$addUrl($baseUrl . 'productos');
$addUrl($baseUrl . 'promociones');

$categorias = $categoriaModel->obtenerArbolActivo();
foreach ($categorias as $categoria) {
    if (!empty($categoria['children'])) {
        foreach ($categoria['children'] as $subcategoria) {
            $addUrl($baseUrl . $categoria['slug'] . '/' . $subcategoria['slug']);
        }
    }
}

$productos = $productoModel->obtenerProductosActivos();
foreach ($productos as $producto) {
    $lastmod = $producto['actualizado_en'] ?? ($producto['creado_en'] ?? null);
    $lastmod = $lastmod ? date(DATE_W3C, strtotime($lastmod)) : null;
    $addUrl($baseUrl . 'producto/' . rawurlencode($producto['slug']), $lastmod);
}

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
echo "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";
foreach ($urls as $url) {
    echo "  <url>\n";
    echo '    <loc>' . htmlspecialchars($url['loc'], ENT_QUOTES, 'UTF-8') . "</loc>\n";
    if (!empty($url['lastmod'])) {
        echo '    <lastmod>' . htmlspecialchars($url['lastmod'], ENT_QUOTES, 'UTF-8') . "</lastmod>\n";
    }
    echo "  </url>\n";
}
echo "</urlset>";
