import { NextResponse } from "next/server"; import { auth } from "@/app/(auth)/auth"; import { buildDefaultWorkspaceName, createWorkspaceSummary, normalizeWorkspaceName, } from "@/app/api/ai-cad/workspace-utils"; import { createAiCadWorkspace, listAiCadWorkspacesByUserId, } from "@/lib/db/queries"; export const runtime = "nodejs"; export async function GET() { const session = await auth(); if (!session?.user?.id) { return NextResponse.json( { success: false, error: "未登录" }, { status: 401 } ); } const workspaces = await listAiCadWorkspacesByUserId({ userId: session.user.id, }); return NextResponse.json({ success: true, data: workspaces.map(createWorkspaceSummary), }); } export async function POST(request: Request) { const session = await auth(); if (!session?.user?.id) { return NextResponse.json( { success: false, error: "未登录" }, { status: 401 } ); } const body = (await request.json().catch(() => ({}))) as { name?: unknown }; const existingWorkspaces = await listAiCadWorkspacesByUserId({ userId: session.user.id, }); const workspace = await createAiCadWorkspace({ userId: session.user.id, name: normalizeWorkspaceName( body.name, buildDefaultWorkspaceName(existingWorkspaces.length + 1) ), }); if (!workspace) { return NextResponse.json( { success: false, error: "创建 AI-CAD 工作台失败" }, { status: 500 } ); } return NextResponse.json( { success: true, data: createWorkspaceSummary(workspace), }, { status: 201 } ); }