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

require_once 'config.php';

$base_url = ROOT_URL;

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

function addUrl($loc, $lastmod = '', $changefreq = 'weekly', $priority = '0.5') {
    global $xml;
    $xml .= "\n  <url>";
    $xml .= "\n    <loc>" . htmlspecialchars($loc) . "</loc>";
    if ($lastmod) {
        $xml .= "\n    <lastmod>" . htmlspecialchars($lastmod) . "</lastmod>";
    }
    $xml .= "\n    <changefreq>" . htmlspecialchars($changefreq) . "</changefreq>";
    $xml .= "\n    <priority>" . htmlspecialchars($priority) . "</priority>";
    $xml .= "\n  </url>";
}

addUrl($base_url, date('Y-m-d'), 'daily', '1.0');

addUrl($base_url . 'article_list.php', date('Y-m-d'), 'weekly', '0.8');

addUrl($base_url . 'api_details.php', date('Y-m-d'), 'weekly', '0.7');

addUrl($base_url . 'help_center.php', date('Y-m-d'), 'monthly', '0.6');

try {
    $pdo = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=" . DB_CHARSET, DB_USER, DB_PASS);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $stmt = $pdo->prepare("SELECT id, updated_at FROM sl_articles WHERE status = 'published' ORDER BY updated_at DESC");
    $stmt->execute();
    $articles = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    foreach ($articles as $article) {
        $url = $base_url . 'article_detail.php?id=' . $article['id'];
        $lastmod = date('Y-m-d', strtotime($article['updated_at']));
        addUrl($url, $lastmod, 'weekly', '0.7');
    }
    
    $stmt_cat = $pdo->query("SELECT id FROM sl_article_categories WHERE is_active = 1");
    $categories = $stmt_cat->fetchAll(PDO::FETCH_ASSOC);
    
    foreach ($categories as $cat) {
        $url = $base_url . 'article_list.php?category_id=' . $cat['id'];
        addUrl($url, date('Y-m-d'), 'weekly', '0.6');
    }
    
} catch (Exception $e) {
}

$xml .= "\n</urlset>";

echo $xml;
?>