<?php
require_once "lib/account.php";


function generateSitemap(): void{
    global $routerConfig;

    $site_dirs = array_diff(scandir($routerConfig["page_dir"]), array('.', '..'));

    $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http";
    $domain = $_SERVER['HTTP_HOST'];
    $subdomain = ""; // You may need to modify this based on your subdomain logic

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

    foreach ($site_dirs as $site_dir) {
        $pages_dir = array_diff(scandir($routerConfig["page_dir"] . $site_dir), array('.', '..'));

        foreach ($pages_dir as $page_file) {
            $page_file_tmp = explode(".", $page_file);
            $page_basename = $page_file_tmp[0];
            $page_file_path = $routerConfig["page_dir"] . $site_dir . "/" . $page_file;

            $page_location = $protocol . "://" . $subdomain . $domain . "/" . $site_dir . "/" . $page_basename;

            if ($page_file_tmp[1] == "html") {
                $page_tmp = file_get_contents($page_file_path);

                $pageMetadata = parsePageTag($page_tmp);

                if (!empty($pageMetadata["parameters"]["minimal_permission_level"])) {
                    $page_required_permission = intval($pageMetadata["parameters"]["minimal_permission_level"]);
                } else {
                    $page_required_permission = $routerConfig["page"]["default_permissions"];
                }
            } elseif ($page_file_tmp[1] == "php") {
                $page_required_permission = getDynamicPermission($page_file_path);
            } else {
                $page_required_permission = $routerConfig["page"]["default_permissions"];
            }

            // Check if the user is authorized to access the page
            if ($page_required_permission <= $_SESSION["privilege_level"]) {
                $sitemap .= '<url>' . PHP_EOL;
                $sitemap .= '<loc>' . htmlspecialchars($page_location) . '</loc>' . PHP_EOL;
                // You can add other optional tags like lastmod, changefreq, priority here if needed
                $sitemap .= '</url>' . PHP_EOL;
            }
        }
    }

    $sitemap .= '</urlset>' . PHP_EOL;

    header('Content-type: application/xml');
    echo $sitemap;
}