import type { MetadataRoute } from "next";
import { env } from "@/lib/env";
import { listSanityProductHandles } from "@/lib/sanity/queries";

const STATIC_ROUTES = [
  "/",
  "/boutique",
  "/en-savoir-plus",
  "/mentions-legales",
  "/politique-confidentialite",
  "/politique-cookies",
  "/droits-rgpd",
  "/cgu",
  "/cgv",
];

export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
  const base = env.siteUrl.replace(/\/+$/, "");
  const now = new Date();
  const productHandles = await listSanityProductHandles(1000);

  const staticEntries: MetadataRoute.Sitemap = STATIC_ROUTES.map((route) => ({
    url: `${base}${route}`,
    lastModified: now,
    changeFrequency: route === "/" || route === "/boutique" ? "daily" : "monthly",
    priority: route === "/" ? 1 : route === "/boutique" ? 0.9 : 0.6,
  }));

  const productEntries: MetadataRoute.Sitemap = productHandles.map((handle) => ({
    url: `${base}/produits/${handle}`,
    lastModified: now,
    changeFrequency: "weekly",
    priority: 0.8,
  }));

  return [...staticEntries, ...productEntries];
}
