import { prisma } from "@/lib/prisma"; import type { MetadataRoute } from "next"; type SitemapRoute = MetadataRoute.Sitemap[0]; export const revalidate = 43200; // update every 12 hours export default async function sitemap(): Promise { const baseUrl = process.env.NEXT_PUBLIC_FRONTEND_URL!; const apiUrl = process.env.NEXT_PUBLIC_BASE_URL!; const miis = await prisma.mii.findMany({ select: { id: true, createdAt: true, }, where: { in_queue: false, quarantined: false, }, }); // const users = await prisma.user.findMany({ // select: { // id: true, // updatedAt: true, // }, // }); const dynamicRoutes: MetadataRoute.Sitemap = [ ...miis.map( (mii) => ({ url: `${baseUrl}/mii/${mii.id}`, lastModified: mii.createdAt, changeFrequency: "weekly", priority: 0.7, images: [`${apiUrl}/mii/${mii.id}/image?type=metadata`], }) as SitemapRoute, ), // ...users.map( // (user) => // ({ // url: `${baseUrl}/profile/${user.id}`, // lastModified: user.updatedAt, // changeFrequency: "weekly", // priority: 0.2, // }) as SitemapRoute, // ), ]; const lastModified = new Date(); return [ { url: baseUrl, lastModified, changeFrequency: "always", priority: 1, }, { url: `${baseUrl}/login`, lastModified, changeFrequency: "monthly", priority: 0.6, }, { url: `${baseUrl}/privacy`, lastModified, changeFrequency: "yearly", priority: 0.4, }, { url: `${baseUrl}/terms-of-service`, lastModified, changeFrequency: "yearly", priority: 0.4, }, ...dynamicRoutes, ]; }