import { initializeApp, cert } from "firebase-admin/app";
import { getFirestore } from "firebase-admin/firestore";
import fs from "fs";

// Initialize Firebase Admin (service account required)
initializeApp();
const db = getFirestore();

async function generateSitemap() {
  const baseUrl = "https://astra3d.com";
  
  // Static core pages
  const staticPages = [
    "",
    // add other marketing routes here
  ];

  // Fetch only published tours
  const toursSnapshot = await db
    .collection("tours")
    .where("activity", "==", "publish")
    .get();

  const tourUrls = toursSnapshot.docs.map((doc) => {
    return `
    <url>
      <loc>${baseUrl}/welcome/${doc.id}</loc>
      <changefreq>weekly</changefreq>
      <priority>0.8</priority>
    </url>`;
  });

  const staticUrls = staticPages.map((route) => {
    return `
    <url>
      <loc>${baseUrl}/${route}</loc>
      <changefreq>daily</changefreq>
      <priority>1.0</priority>
    </url>`;
  });

  const sitemapContent = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  ${staticUrls.join("")}
  ${tourUrls.join("")}
</urlset>`;

  fs.writeFileSync("public/sitemap.xml", sitemapContent.trim());
  console.log(`Generated sitemap with ${tourUrls.length} published tours.`);
}

generateSitemap();