import { NextResponse } from "next/server"; import { prisma } from "../../../../lib/prisma"; export async function GET( _req: Request, { params }: { params: { id: string } }, ) { const image = await prisma.listingImage.findUnique({ where: { id: params.id }, select: { data: true, mimeType: true, url: true, updatedAt: true }, }); if (!image) { return NextResponse.json({ error: "Not found" }, { status: 404 }); } if (image.data) { const res = new NextResponse(image.data, { status: 200, headers: { "Content-Type": image.mimeType || "application/octet-stream", "Cache-Control": "public, max-age=86400", }, }); if (image.updatedAt) { res.headers.set("Last-Modified", image.updatedAt.toUTCString()); } return res; } if (image.url) { return NextResponse.redirect(image.url, { status: 302 }); } return NextResponse.json({ error: "Image missing" }, { status: 404 }); }