import { withUser, parseBody, json } from "@/lib/api"; import { listProjects, createProject } from "@/lib/projects/service"; import { projectBodySchema } from "@/lib/projects/schemas"; export const dynamic = "force-dynamic"; /** GET /api/projects?archived=1 → { projects } (non-archived by default; each with conversation/file/prompt counts). */ export const GET = withUser(async ({ req, user }) => { const includeArchived = new URL(req.url).searchParams.get("archived") === "1"; return json({ projects: await listProjects(user.id, { includeArchived }) }); }); /** POST /api/projects → 201 { project } */ export const POST = withUser(async ({ req, user }) => { const body = await parseBody(req, projectBodySchema); return json({ project: await createProject(user.id, body) }, { status: 201 }); });