import { NextRequest, NextResponse } from 'next/server';
import { db, schema } from '@/lib/db';
import { eq } from 'drizzle-orm';
import { getSession } from '@/lib/auth';

// DELETE /api/admin/conversions/[id] — delete any single conversion (admin only)
export async function DELETE(
  request: NextRequest,
  { params }: { params: Promise<{ id: string }> }
) {
  try {
    const { id } = await params;
    const accessToken = request.cookies.get('scriba.access_token')?.value;
    const session = await getSession(accessToken);
    if (!session) return NextResponse.json({ error: 'Unauthorized' }, { status: 401 });

    const currentUser = await db.query.users.findFirst({ where: eq(schema.users.id, session.user.id) });
    if (!currentUser || currentUser.role !== 'admin') {
      return NextResponse.json({ error: 'Forbidden - Admin access required' }, { status: 403 });
    }

    const deleted = await db.delete(schema.projects).where(eq(schema.projects.id, id)).returning({ id: schema.projects.id });
    if (deleted.length === 0) {
      return NextResponse.json({ error: 'Conversion not found' }, { status: 404 });
    }

    return NextResponse.json({ success: true, message: 'Conversion deleted.' });
  } catch (error) {
    console.error('Admin delete conversion error:', error);
    return NextResponse.json({ error: 'Failed to delete conversion' }, { status: 500 });
  }
}
