<?php
/**
 * RSS Sitemap - Todas as URLs do site
 * Portal de Notícias - Sitemap XML
 */

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

// Configurações
require_once 'database_config.php';
$db = Database::getInstance();

$siteUrl = SITE_URL;
$buildDate = date('Y-m-d\TH:i:sP');

// Iniciar XML
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
    
    <!-- Página principal -->
    <url>
        <loc><?= htmlspecialchars($siteUrl) ?></loc>
        <lastmod><?= $buildDate ?></lastmod>
        <changefreq>daily</changefreq>
        <priority>1.0</priority>
    </url>
    
    <!-- Páginas estáticas -->
    <url>
        <loc><?= htmlspecialchars($siteUrl) ?>sobre</loc>
        <lastmod><?= $buildDate ?></lastmod>
        <changefreq>monthly</changefreq>
        <priority>0.8</priority>
    </url>
    
    <url>
        <loc><?= htmlspecialchars($siteUrl) ?>contato</loc>
        <lastmod><?= $buildDate ?></lastmod>
        <changefreq>monthly</changefreq>
        <priority>0.8</priority>
    </url>
    
    <!-- Categorias -->
    <?php
    try {
        $categorias = $db->select("
            SELECT slug, data_atualizacao 
            FROM categorias 
            WHERE ativa = 1 
            ORDER BY nome
        ");
        
        foreach ($categorias as $cat):
            $lastMod = !empty($cat['data_atualizacao']) 
                ? date('Y-m-d\TH:i:sP', strtotime($cat['data_atualizacao']))
                : $buildDate;
            ?>
            <url>
                <loc><?= htmlspecialchars($siteUrl . 'categoria/' . $cat['slug']) ?></loc>
                <lastmod><?= $lastMod ?></lastmod>
                <changefreq>daily</changefreq>
                <priority>0.9</priority>
            </url>
            <?php
        endforeach;
        
    } catch (Exception $e) {
        error_log("Erro ao buscar categorias para sitemap: " . $e->getMessage());
    }
    ?>
    
    <!-- Notícias -->
    <?php
    try {
        $noticias = $db->select("
            SELECT slug, data_publicacao, data_atualizacao 
            FROM noticias 
            WHERE status = 'publicada' 
            ORDER BY data_publicacao DESC 
            LIMIT 1000
        ");
        
        foreach ($noticias as $noticia):
            $lastMod = !empty($noticia['data_atualizacao']) 
                ? date('Y-m-d\TH:i:sP', strtotime($noticia['data_atualizacao']))
                : date('Y-m-d\TH:i:sP', strtotime($noticia['data_publicacao']));
            ?>
            <url>
                <loc><?= htmlspecialchars($siteUrl . 'noticia/' . $noticia['slug']) ?></loc>
                <lastmod><?= $lastMod ?></lastmod>
                <changefreq>weekly</changefreq>
                <priority>0.8</priority>
            </url>
            <?php
        endforeach;
        
    } catch (Exception $e) {
        error_log("Erro ao buscar notícias para sitemap: " . $e->getMessage());
    }
    ?>

</urlset>
