import { prisma } from "@/lib/db"; async function getFlag(key: string): Promise { const row = await prisma.config.findUnique({ where: { key } }); return row?.value === "true"; } async function setFlag(key: string, value: boolean): Promise { const v = value ? "true" : "false"; await prisma.config.upsert({ where: { key }, create: { key, value: v, secret: false }, update: { value: v }, }); } export async function GET() { return Response.json({ paused: await getFlag("floor.paused") }); } export async function POST(request: Request) { let body: { action?: string }; try { body = (await request.json()) as { action?: string }; } catch { return Response.json({ error: "invalid JSON" }, { status: 400 }); } switch (body.action) { case "pause": await setFlag("floor.paused", true); return Response.json({ ok: true, paused: true }); case "resume": await setFlag("floor.paused", false); return Response.json({ ok: true, paused: false }); case "stop": await setFlag("floor.paused", true); await setFlag("floor.killRequested", true); return Response.json({ ok: true, paused: true, stopped: true }); case "clear": { const { count } = await prisma.request.deleteMany({ where: { job: { is: { state: "requested" } } }, }); return Response.json({ ok: true, cleared: count }); } default: return Response.json({ error: "unknown action" }, { status: 400 }); } }