import { NextResponse } from "next/server"; import NodeCache from "node-cache"; import { prisma } from "@/lib/prisma"; export const runtime = "nodejs"; // Force Node runtime const cache = new NodeCache({ stdTTL: 300 }); // Cache für 5 Minuten type LegacyPost = { slug: string; id: string; title: string; meta_description: string | null; updated_at: string; }; type LegacyPostsResponse = { posts: Array; }; export async function GET() { const cacheKey = "projects:legacyPosts"; const cachedPosts = cache.get(cacheKey); if (cachedPosts) { return NextResponse.json(cachedPosts); } try { const projects = await prisma.project.findMany({ where: { published: true }, orderBy: { updatedAt: "desc" }, select: { id: true, slug: true, title: true, updatedAt: true, metaDescription: true, }, }); const payload: LegacyPostsResponse = { posts: projects.map((p) => ({ id: String(p.id), slug: p.slug, title: p.title, meta_description: p.metaDescription ?? null, updated_at: (p.updatedAt ?? new Date()).toISOString(), })), }; cache.set(cacheKey, payload); return NextResponse.json(payload); } catch (error) { console.error("Failed to fetch projects:", error); return NextResponse.json( { error: "Failed to fetch projects" }, { status: 500 }, ); } }