import { MetadataRoute } from "next";
import { sanityFetch } from "@/sanity/lib/sanityFetch";

export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
  const baseUrl = "https://sboriginalsstore.com";

  const products = await sanityFetch(`
  *[_type == "product"]{
    "slug": slug.current,
    _updatedAt,
    "categorySlug": category->slug.current
  }
`);

  const categories = await sanityFetch(`
    *[_type == "category"]{
      "slug": slug.current,
      _updatedAt
    }
  `);

  const staticRoutes = ["", "/about", "/contact"].map((route) => ({
    url: `${baseUrl}${route}`,
    lastModified: new Date(),
  }));

  const productRoutes = products.map((product: any) => ({
  url: `${baseUrl}/category/${product.categorySlug}/${product.slug}`,
  lastModified: new Date(product._updatedAt),
}));

  const categoryRoutes = categories.map((category: any) => ({
    url: `${baseUrl}/category/${category.slug}`,
    lastModified: new Date(category._updatedAt),
  }));

  return [...staticRoutes, ...productRoutes, ...categoryRoutes];
}