import { NextRequest, NextResponse } from "next/server"; import { deleteWord, updateWord, type Grade } from "@/lib/db"; export const runtime = "nodejs"; export const dynamic = "force-dynamic"; type RouteContext = { params: Promise<{ id: string }>; }; export async function PUT(request: NextRequest, context: RouteContext) { try { const { id } = await context.params; const body = await request.json(); const word = updateWord(Number(id), { grade: body.grade as Grade, classTypeId: Number(body.classTypeId), english: String(body.english ?? ""), chinese: String(body.chinese ?? ""), image: String(body.image ?? ""), audio: String(body.audio ?? ""), enabled: Boolean(body.enabled), }); return NextResponse.json({ word }); } catch (error) { return NextResponse.json({ message: getErrorMessage(error) }, { status: 400 }); } } export async function DELETE(_request: NextRequest, context: RouteContext) { try { const { id } = await context.params; deleteWord(Number(id)); return NextResponse.json({ ok: true }); } catch (error) { return NextResponse.json({ message: getErrorMessage(error) }, { status: 400 }); } } function getErrorMessage(error: unknown) { const message = error instanceof Error ? error.message : "操作失败"; if (message.includes("UNIQUE")) return "相同年级、班级类型和英语题库已存在"; if (message.includes("FOREIGN KEY")) return "班级类型不存在"; return message; }