import { auth } from "@/app/(auth)/auth"; import { db } from "@/lib/db"; import { canvasProject } from "@/lib/db/schema"; import { eq, and, sql, desc } from "drizzle-orm"; import { NextResponse } from "next/server"; export async function GET() { const session = await auth(); if (!session?.user?.id) return NextResponse.json({ error: "未登录" }, { status: 401 }); const rows = await db .select({ projectId: canvasProject.id, title: canvasProject.title, templates: sql`${canvasProject.canvasData}->'groupTemplates'`, }) .from(canvasProject) .where( and( eq(canvasProject.userId, session.user.id), eq(canvasProject.workspaceType, "video"), sql`${canvasProject.canvasData} ? 'groupTemplates'` ) ) .orderBy(desc(canvasProject.updatedAt)) .limit(100); return NextResponse.json( { templates: rows.flatMap((row) => Array.isArray(row.templates) ? row.templates.map((template) => ({ ...template, projectId: row.projectId, projectTitle: row.title, })) : [] ), }, { headers: { "Cache-Control": "no-store" } } ); }