import type { MetadataRoute } from "next";
import { getAllRoutes, routes } from "@/lib/routes";
import { absoluteUrl } from "@/lib/site";

const LAST_MODIFIED = "2026-09-17";

function priorityFor(path: string): number {
  if (path === routes.home) return 1;
  if (path === routes.saas || path === routes.ecommerce || path === routes.audit) return 0.9;
  if (path.startsWith("/resources/")) return 0.6;
  if ([routes.privacy, routes.terms, routes.cookiePolicy, routes.cookiePreferences].includes(path as never)) return 0.2;
  if (path === routes.contact) return 0.5;
  return 0.8;
}

export default function sitemap(): MetadataRoute.Sitemap {
  return getAllRoutes().map((path) => ({
    url: absoluteUrl(path),
    lastModified: LAST_MODIFIED,
    changeFrequency: path.startsWith("/resources") ? "monthly" : "yearly",
    priority: priorityFor(path),
  }));
}
