<?php
/**
 * Dynamic Sitemap Generator
 * This file should be placed in WordPress root directory
 */

// Load WordPress
require_once('wp-load.php');

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

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

// 1. Homepage
echo '<url>';
echo '<loc>' . home_url('/') . '</loc>';
echo '<changefreq>daily</changefreq>';
echo '<priority>1.0</priority>';
echo '<lastmod>' . date('Y-m-d') . '</lastmod>';
echo '</url>';

// 2. Essential pages
$pages = [
    'privacy-policy' => '0.3',
    'terms-of-service' => '0.3',
    'contact' => '0.4',
    'sitemap' => '0.3'
];

foreach ($pages as $page => $priority) {
    echo '<url>';
    echo '<loc>' . home_url('/' . $page . '/') . '</loc>';
    echo '<changefreq>monthly</changefreq>';
    echo '<priority>' . $priority . '</priority>';
    echo '<lastmod>' . date('Y-m-d') . '</lastmod>';
    echo '</url>';
}

// 3. Get all route files dynamically
$theme_dir = get_stylesheet_directory();
$files = scandir($theme_dir);
$route_count = 0;
$golden_count = 0;

foreach ($files as $file) {
    // Match route files
    if (preg_match('/^([a-z0-9-]+)-to-([a-z0-9-]+)\.php$/', $file, $matches)) {
        // Skip test/debug files
        if (strpos($file, 'debug') !== false || strpos($file, 'test') !== false) {
            continue;
        }
        
        $route_count++;
        $file_path = $theme_dir . '/' . $file;
        $file_size = filesize($file_path);
        $url = str_replace('.php', '/', $file);
        
        // Determine priority based on file size
        if ($file_size > 15000) {
            $priority = '0.9';
            $changefreq = 'weekly';
            $golden_count++;
        } elseif ($file_size > 5000) {
            $priority = '0.8';
            $changefreq = 'weekly';
        } else {
            $priority = '0.7';
            $changefreq = 'monthly';
        }
        
        // Boost major cities
        $major_cities = ['new-york', 'los-angeles', 'chicago', 'miami', 'san-francisco', 'boston', 'washington-dc'];
        foreach ($major_cities as $city) {
            if (strpos($file, $city) !== false) {
                $priority = '0.9';
                break;
            }
        }
        
        echo '<url>';
        echo '<loc>' . home_url('/' . $url) . '</loc>';
        echo '<changefreq>' . $changefreq . '</changefreq>';
        echo '<priority>' . $priority . '</priority>';
        echo '<lastmod>' . date('Y-m-d', filemtime($file_path)) . '</lastmod>';
        echo '</url>';
        
        // Add comment every 500 routes
        if ($route_count % 500 == 0) {
            echo "\n<!-- Progress: {$route_count} routes processed -->\n";
        }
    }
}

echo '</urlset>';

// Add statistics comment
echo "\n<!-- Sitemap Statistics -->";
echo "\n<!-- Generated: " . date('Y-m-d H:i:s') . " -->";
echo "\n<!-- Total Routes: {$route_count} -->";
echo "\n<!-- Golden Templates: {$golden_count} -->";
echo "\n<!-- Total URLs: " . ($route_count + count($pages) + 1) . " -->";
?>