const { createClient } = require("@supabase/supabase-js");

const supabase = createClient(
  process.env.SUPABASE_URL,
  process.env.SUPABASE_SERVICE_ROLE_KEY
);

exports.handler = async function () {
  const site = "https://tactical729.com";

  const { data: categories } = await supabase
    .from("categories")
    .select("slug");

  const { data: products } = await supabase
    .from("products")
    .select("slug, updated_at");

  let urls = "";

  // Homepage
  urls += `
  <url>
    <loc>${site}/</loc>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>`;

  // Categories
  categories?.forEach((cat) => {
    urls += `
    <url>
      <loc>${site}/category/${cat.slug}</loc>
      <changefreq>weekly</changefreq>
      <priority>0.9</priority>
    </url>`;
  });

  // Products
  products?.forEach((p) => {
    urls += `
    <url>
      <loc>${site}/product/${p.slug}</loc>
      <lastmod>${p.updated_at.split("T")[0]}</lastmod>
      <changefreq>weekly</changefreq>
      <priority>0.8</priority>
    </url>`;
  });

  return {
    statusCode: 200,
    headers: {
      "Content-Type": "application/xml",
    },
    body: `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
${urls}
</urlset>`,
  };
};
