import { createFileRoute } from "@tanstack/react-router";
import type {} from "@tanstack/react-start";
import { SITE, SERVICES, CITIES } from "@/lib/site";
import { POSTS } from "@/lib/blog";

export const Route = createFileRoute("/sitemap.xml")({
  server: {
    handlers: {
      GET: async () => {
        const urls: { loc: string; lastmod?: string; priority?: string }[] = [
          { loc: SITE.url + "/", priority: "1.0" },
          { loc: SITE.url + "/services", priority: "0.9" },
          { loc: SITE.url + "/pricing", priority: "0.9" },
          { loc: SITE.url + "/blog", priority: "0.8" },
          { loc: SITE.url + "/about", priority: "0.7" },
          { loc: SITE.url + "/contact", priority: "0.8" },
          ...SERVICES.map((s) => ({ loc: `${SITE.url}/services/${s.slug}`, priority: "0.8" })),
          ...CITIES.map((c) => ({ loc: `${SITE.url}/locations/${c.slug}`, priority: "0.7" })),
          ...POSTS.map((p) => ({ loc: `${SITE.url}/blog/${p.slug}`, lastmod: p.date, priority: "0.6" })),
        ];

        const xml = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
${urls.map((u) => `  <url><loc>${u.loc}</loc>${u.lastmod ? `<lastmod>${u.lastmod}</lastmod>` : ""}${u.priority ? `<priority>${u.priority}</priority>` : ""}</url>`).join("\n")}
</urlset>`;

        return new Response(xml, { headers: { "Content-Type": "application/xml" } });
      },
    },
  },
});
