/**
 * Mapa do site (sitemap.xml) com a página de cada loja ativa. O Google usa para descobrir as lojas.
 * Coloque em: <pasta do frontend>/api/sitemap.js
 */

const SITE = (process.env.SITE_URL || 'https://www.loyvia.com.br').replace(/\/$/, '')
const API = (process.env.API_URL || process.env.VITE_API_URL || '').replace(/\/$/, '')

const PAGINAS = ['/home', '/busca-lojas', '/cliente/cadastro', '/loja/cadastro', '/instalar-app', '/privacidade', '/excluir-conta']

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

export default async function handler(req, res) {
  let lojas = []

  try {
    const resposta = await fetch(`${API}/stores/public-sitemap`, { headers: { accept: 'application/json' } })
    if (resposta.ok) lojas = await resposta.json()
  } catch {
    lojas = []
  }

  const itens = [
    ...PAGINAS.map((caminho) => `  <url><loc>${esc(SITE + caminho)}</loc></url>`),
    ...lojas.map(
      (loja) =>
        `  <url><loc>${esc(`${SITE}/perfil-loja/${loja.slug}`)}</loc>${loja.atualizado ? `<lastmod>${esc(loja.atualizado)}</lastmod>` : ''}</url>`
    )
  ]

  const xml = `<?xml version="1.0" encoding="UTF-8"?>\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n${itens.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')
  res.status(200).send(xml)
}