import clientPromise from './lib/mongodb.js';

const SITE = 'https://www.akkishealthybaking.com';

// (पान, महत्त्व)
const PAGES = [
  ['/', '1.0'],
  ['/products', '0.9'],
  ['/custom-cake', '0.9'],
  ['/about', '0.8'],
  ['/gallery', '0.8'],
  ['/contact', '0.8'],
  ['/blog', '0.7']
];

const x = s => String(s).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');

export default async function handler(req, res) {
  try {
    const client = await clientPromise;
    const list = await client.db('akkis-baking').collection('products')
      .find({ slug: { $exists: true, $ne: '' } }, { projection: { slug: 1, updatedAt: 1, createdAt: 1 } })
      .toArray();

    const urls = PAGES.map(([p, pr]) => `  <url>\n    <loc>${SITE}${p === '/' ? '/' : p}</loc>\n    <priority>${pr}</priority>\n  </url>`);
    for (const p of list) {
      const d = p.updatedAt || p.createdAt;
      const lastmod = d ? `\n    <lastmod>${new Date(d).toISOString().slice(0, 10)}</lastmod>` : '';
      urls.push(`  <url>\n    <loc>${SITE}/product/${x(encodeURIComponent(p.slug))}</loc>${lastmod}\n    <priority>0.7</priority>\n  </url>`);
    }

    const xml = `<?xml version="1.0" encoding="UTF-8"?>\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n${urls.join('\n')}\n</urlset>\n`;
    res.setHeader('Content-Type', 'application/xml; charset=utf-8');
    res.setHeader('Cache-Control', 'public, s-maxage=3600, stale-while-revalidate=86400');
    return res.status(200).send(xml);
  } catch (e) {
    console.error(e);
    return res.status(500).send('Sitemap error');
  }
}
