// src/app/sitemap.ts
export const dynamic = "force-static";
export const revalidate = false;

import type { MetadataRoute } from "next";
import content from "../content.json";
import { SITE_CONFIG } from "../lib/seo";

const siteUrl = SITE_CONFIG.url;

export default function sitemap(): MetadataRoute.Sitemap {
  const now = new Date();
  // Use correct type for each entry, not the array
  const statics: MetadataRoute.Sitemap = [
    {
      url: `${siteUrl}/`,
      lastModified: now,
      changeFrequency: "weekly" as const,
      priority: 1,
    },
    {
      url: `${siteUrl}/aboutus`,
      lastModified: now,
      changeFrequency: "monthly" as const,
      priority: 0.6,
    },
    {
      url: `${siteUrl}/contactus`,
      lastModified: now,
      changeFrequency: "yearly" as const,
      priority: 0.5,
    },
    {
      url: `${siteUrl}/whyaxiom`,
      lastModified: now,
      changeFrequency: "monthly" as const,
      priority: 0.6,
    },
    {
      url: `${siteUrl}/sectors`,
      lastModified: now,
      changeFrequency: "weekly" as const,
      priority: 0.7,
    },
    {
      url: `${siteUrl}/products`,
      lastModified: now,
      changeFrequency: "weekly" as const,
      priority: 0.7,
    },
  ];

  const sectors: MetadataRoute.Sitemap[number][] = Object.keys(
    content?.sectors || {},
  ).map((id) => ({
    url: `${siteUrl}/sectors/${id}`,
    lastModified: now,
    changeFrequency: "weekly" as const,
    priority: 0.7,
  }));

  const products: MetadataRoute.Sitemap[number][] = Object.keys(
    content?.products || {},
  ).map((id) => ({
    url: `${siteUrl}/products/${id}`,
    lastModified: now,
    changeFrequency: "weekly" as const,
    priority: 0.7,
  }));

  // The spread operator is fine now, as all arrays are of the correct type
  return [...statics, ...sectors, ...products];
}
