import { getGameDb } from '@/lib/db/client' import { ResearchError, researchTech } from '@/lib/game/research' // Research one tech. Body: { "techId": number }. Costs inventory items + a turn; returns the fresh tech tree state. export async function POST(req: Request) { let body: unknown try { body = await req.json() } catch { return Response.json({ error: 'Invalid JSON body' }, { status: 400 }) } const techId = (body as { techId?: unknown }).techId if (typeof techId !== 'number' || !Number.isInteger(techId)) { return Response.json({ error: 'techId must be an integer' }, { status: 400 }) } try { const db = await getGameDb() return Response.json(await researchTech(db, techId)) } catch (err) { if (err instanceof ResearchError) { return Response.json({ error: err.message }, { status: err.status }) } throw err } }