<?php
header("Content-Type: application/xml; charset=utf-8");

include_once("inc/config.php");
include_once("inc/functions.php");

$base_url = defined('BASE_URL') ? BASE_URL : 'https://bahawamart.com/';

echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";

// Static Pages
$static_pages = [
    '',
    'about.php',
    'contact.php',
    'privacy-policy.php',
    'terms-conditions.php',
    'shipping-delivery-policy.php',
    'returns-exchange-policy.php',
    'login.php',
    'register.php'
];

$now = date('Y-m-d');

foreach ($static_pages as $page) {
    echo '  <url>' . "\n";
    echo '    <loc>' . htmlspecialchars($base_url . $page) . '</loc>' . "\n";
    echo '    <lastmod>' . $now . '</lastmod>' . "\n";
    echo '    <changefreq>daily</changefreq>' . "\n";
    echo '    <priority>' . ($page === '' ? '1.0' : '0.8') . '</priority>' . "\n";
    echo '  </url>' . "\n";
}

// 1. Categories
try {
    // Main Categories
    $stmt = $pdo->prepare("SELECT id FROM main_category WHERE show_on_menu = '1'");
    $stmt->execute();
    $main_cats = $stmt->fetchAll(PDO::FETCH_ASSOC);
    foreach ($main_cats as $mcat) {
        $m_id = $mcat['id'];
        echo '  <url>' . "\n";
        echo '    <loc>' . htmlspecialchars($base_url . 'product-list.php?category=' . $m_id) . '</loc>' . "\n";
        echo '    <lastmod>' . $now . '</lastmod>' . "\n";
        echo '    <changefreq>weekly</changefreq>' . "\n";
        echo '    <priority>0.7</priority>' . "\n";
        echo '  </url>' . "\n";

        // Sub Categories
        $stmt_sub = $pdo->prepare("SELECT id FROM sub_category WHERE main_id = ?");
        $stmt_sub->execute([$m_id]);
        $sub_cats = $stmt_sub->fetchAll(PDO::FETCH_ASSOC);
        foreach ($sub_cats as $scat) {
            $s_id = $scat['id'];
            echo '  <url>' . "\n";
            echo '    <loc>' . htmlspecialchars($base_url . 'product-list.php?category=' . $m_id . '&sub_category=' . $s_id) . '</loc>' . "\n";
            echo '    <lastmod>' . $now . '</lastmod>' . "\n";
            echo '    <changefreq>weekly</changefreq>' . "\n";
            echo '    <priority>0.6</priority>' . "\n";
            echo '  </url>' . "\n";

            // Sub-Sub Categories
            $stmt_ssub = $pdo->prepare("SELECT id FROM sub_sub_category WHERE main_id = ? AND sub_id = ?");
            $stmt_ssub->execute([$m_id, $s_id]);
            $ssub_cats = $stmt_ssub->fetchAll(PDO::FETCH_ASSOC);
            foreach ($ssub_cats as $sscat) {
                $ss_id = $sscat['id'];
                echo '  <url>' . "\n";
                echo '    <loc>' . htmlspecialchars($base_url . 'product-list.php?category=' . $m_id . '&sub_category=' . $s_id . '&sub_sub_category=' . $ss_id) . '</loc>' . "\n";
                echo '    <lastmod>' . $now . '</lastmod>' . "\n";
                echo '    <changefreq>weekly</changefreq>' . "\n";
                echo '    <priority>0.5</priority>' . "\n";
                echo '  </url>' . "\n";
            }
        }
    }

    // 2. Active Products
    $stmt_prod = $pdo->prepare("SELECT DISTINCT p.p_id FROM tbl_product p INNER JOIN tbl_inventory i ON p.p_id = i.p_id WHERE i.p_qty > 0");
    $stmt_prod->execute();
    $products = $stmt_prod->fetchAll(PDO::FETCH_ASSOC);
    foreach ($products as $prod) {
        echo '  <url>' . "\n";
        echo '    <loc>' . htmlspecialchars($base_url . 'product.php?produt_id=' . $prod['p_id']) . '</loc>' . "\n";
        echo '    <lastmod>' . $now . '</lastmod>' . "\n";
        echo '    <changefreq>daily</changefreq>' . "\n";
        echo '    <priority>0.8</priority>' . "\n";
        echo '  </url>' . "\n";
    }
} catch (Exception $e) {
    // Fail silently in sitemap feed
}

echo '</urlset>' . "\n";
