import { getSession } from '@/lib/session' import { isAdmin } from '@/lib/admin' import { deleteForum, setForumVisibility, updateForum } from '@/lib/admin-forum' export async function DELETE(_request: Request, { params }: { params: Promise<{ id: string }> }) { const session = await getSession() if (!(await isAdmin(session))) return Response.json({ success: false, error: 'forbidden' }, { status: 403 }) const { id } = await params await deleteForum(Number(id)) return Response.json({ success: true }) } export async function PATCH(request: Request, { params }: { params: Promise<{ id: string }> }) { const session = await getSession() if (!(await isAdmin(session))) return Response.json({ success: false, error: 'forbidden' }, { status: 403 }) const { id } = await params let b: Record = {} try { b = await request.json() } catch { return Response.json({ success: false, error: 'invalidRequest' }, { status: 400 }) } await setForumVisibility(Number(id), b.visibility !== false) return Response.json({ success: true }) } export async function PUT(request: Request, { params }: { params: Promise<{ id: string }> }) { const session = await getSession() if (!(await isAdmin(session))) return Response.json({ success: false, error: 'forbidden' }, { status: 403 }) const { id } = await params let b: Record = {} try { b = await request.json() } catch { return Response.json({ success: false, error: 'invalidRequest' }, { status: 400 }) } const name = String(b.name ?? '').trim() const nameEn = String(b.nameEn ?? '').trim() || null const description = String(b.description ?? '').trim() const descriptionEn = String(b.descriptionEn ?? '').trim() || null const order = Number(b.order) || 0 const visibility = b.visibility === false ? 0 : 1 if (!name) return Response.json({ success: false, error: 'emptyError' }) await updateForum(Number(id), name, nameEn, description, descriptionEn, order, visibility) return Response.json({ success: true }) }