import { getProjects } from "@/lib/data";
import {
  getInstagramFeed,
  INSTAGRAM_HANDLE,
  INSTAGRAM_PROFILE_URL,
  MAX_POSTS,
} from "@/lib/instagram";

export const dynamic = "force-dynamic";

export async function GET() {
  try {
    const projects = await getProjects();
    const fallbackItems = projects.slice(0, MAX_POSTS).map((p) => ({
      id: p.slug,
      imageUrl: p.cover,
      caption: `${p.title} — ${p.category}, ${p.year}. Latest from @${INSTAGRAM_HANDLE}`,
      href: INSTAGRAM_PROFILE_URL,
    }));

    const payload = await getInstagramFeed(fallbackItems);

    return Response.json(payload, {
      headers: {
        "Cache-Control": "public, s-maxage=1800, stale-while-revalidate=3600",
      },
    });
  } catch {
    return Response.json(
      {
        handle: `@${INSTAGRAM_HANDLE}`,
        profileUrl: INSTAGRAM_PROFILE_URL,
        followers: null,
        posts: [],
        source: "fallback",
        fetchedAt: new Date().toISOString(),
        live: false,
      },
      { status: 200 },
    );
  }
}
