import { NextRequest, NextResponse } from 'next/server'; import { auth } from '@/auth'; import { prisma } from '@/lib/prisma'; import { VALID_PROVIDERS } from '@/lib/ai/router'; type RouteContext = { params: Promise<{ provider: string }> }; export async function PATCH(req: NextRequest, context: RouteContext) { const session = await auth(); if (!session?.user?.id) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }); } const { provider } = await context.params; if (!VALID_PROVIDERS.has(provider)) { return NextResponse.json({ error: 'Unknown provider' }, { status: 400 }); } const body = (await req.json().catch(() => ({}))) as { isActive?: boolean }; if (typeof body.isActive !== 'boolean') { return NextResponse.json({ error: 'isActive boolean required' }, { status: 400 }); } const updated = await prisma.userAPIKey.updateMany({ where: { userId: session.user.id, provider }, data: { isActive: body.isActive }, }); if (updated.count === 0) { return NextResponse.json({ error: 'Not found' }, { status: 404 }); } return NextResponse.json({ ok: true }); } export async function DELETE(_req: NextRequest, context: RouteContext) { const session = await auth(); if (!session?.user?.id) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }); } const { provider } = await context.params; if (!VALID_PROVIDERS.has(provider)) { return NextResponse.json({ error: 'Unknown provider' }, { status: 400 }); } const deleted = await prisma.userAPIKey.deleteMany({ where: { userId: session.user.id, provider }, }); if (deleted.count === 0) { return NextResponse.json({ error: 'Not found' }, { status: 404 }); } return NextResponse.json({ ok: true }); }