import { NextResponse } from 'next/server' import { deleteUser, updatePassword } from '@/lib/users' import { getSession } from '@/lib/session' export async function DELETE( _request: Request, { params }: { params: Promise<{ id: string }> }, ) { const session = await getSession() if (!session || session.role !== 'admin') { return NextResponse.json({ error: 'Forbidden' }, { status: 403 }) } const { id } = await params // Prevent admins from deleting themselves if (id === session.userId) { return NextResponse.json({ error: 'You cannot delete your own account' }, { status: 400 }) } try { await deleteUser(id) return NextResponse.json({ ok: true }) } catch (e) { return NextResponse.json({ error: (e as Error).message }, { status: 400 }) } } export async function PATCH( request: Request, { params }: { params: Promise<{ id: string }> }, ) { const session = await getSession() if (!session || session.role !== 'admin') { return NextResponse.json({ error: 'Forbidden' }, { status: 403 }) } const { id } = await params let body: { password?: string } try { body = (await request.json()) as { password?: string } } catch { return NextResponse.json({ error: 'Invalid JSON' }, { status: 400 }) } const password = String(body.password ?? '') try { await updatePassword(id, password) return NextResponse.json({ ok: true }) } catch (e) { return NextResponse.json({ error: (e as Error).message }, { status: 400 }) } }