import type { MetadataRoute } from "next";
import { fetchStoreProducts } from "@/lib/medusa";

const SITE =
  process.env.NEXT_PUBLIC_SITE_URL || "https://ot.azulado.cloud";

export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
  const staticRoutes: MetadataRoute.Sitemap = [
    { url: SITE, changeFrequency: "weekly", priority: 1 },
    { url: `${SITE}/shop`, changeFrequency: "daily", priority: 0.9 },
    { url: `${SITE}/shop?cat=mujer`, changeFrequency: "weekly", priority: 0.8 },
    { url: `${SITE}/shop?cat=hombre`, changeFrequency: "weekly", priority: 0.8 },
    {
      url: `${SITE}/shop?cat=accesorios`,
      changeFrequency: "weekly",
      priority: 0.7,
    },
    { url: `${SITE}/collections`, changeFrequency: "weekly", priority: 0.8 },
    { url: `${SITE}/lookbook`, changeFrequency: "monthly", priority: 0.6 },
    {
      url: `${SITE}/cambios-y-devoluciones`,
      changeFrequency: "monthly",
      priority: 0.4,
    },
  ];

  try {
    const products = await fetchStoreProducts();
    const productRoutes: MetadataRoute.Sitemap = products.map((p) => ({
      url: `${SITE}/product/${p.slug}`,
      changeFrequency: "weekly" as const,
      priority: 0.85,
    }));
    return [...staticRoutes, ...productRoutes];
  } catch {
    return staticRoutes;
  }
}
