Store badges in Postgres, expose public/admin APIs, render an infinite footer slider, and ship /admin for paste-embed CRUD. Co-authored-by: Cursor <cursoragent@cursor.com>
25 lines
610 B
TypeScript
25 lines
610 B
TypeScript
import { NextResponse } from "next/server";
|
|
import { prisma } from "@/lib/db";
|
|
|
|
/** Public: active footer badges for the landing marquee. */
|
|
export async function GET() {
|
|
const badges = await prisma.footerBadge.findMany({
|
|
where: { isActive: true },
|
|
orderBy: [{ sortOrder: "asc" }, { createdAt: "asc" }],
|
|
select: {
|
|
id: true,
|
|
name: true,
|
|
embedHtml: true,
|
|
imageUrl: true,
|
|
linkUrl: true,
|
|
sortOrder: true,
|
|
},
|
|
});
|
|
|
|
return NextResponse.json({ badges }, {
|
|
headers: {
|
|
"Cache-Control": "public, s-maxage=60, stale-while-revalidate=300",
|
|
},
|
|
});
|
|
}
|