import { headers } from 'next/headers'; import { NextResponse } from 'next/server'; import { auth } from '@/lib/server/auth'; import { db } from '@/db'; import { user } from '@/db/schema'; import { eq } from 'drizzle-orm'; import { isAuthEnabled } from '@/lib/server/auth-config'; export async function DELETE() { if (!isAuthEnabled() || !auth) { return NextResponse.json({ error: 'Authentication disabled' }, { status: 403 }); } const session = await auth.api.getSession({ headers: await headers() }); if (!session?.user?.id) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }); } try { // Directly delete user from database // Drizzle will handle cascade if configured in foreign keys, but typical cascading happens in DB engine await db.delete(user).where(eq(user.id, session.user.id)); return NextResponse.json({ success: true }); } catch (error) { console.error('Failed to delete account:', error); return NextResponse.json( { error: 'Failed to delete account' }, { status: 500 } ); } }