import { NextResponse } from 'next/server'
import { prisma } from '@/lib/prisma'

// TEMPORARY DEBUG ENDPOINT - HAPUS SETELAH DEBUG SELESAI!
export async function GET() {
  const debugInfo = {
    timestamp: new Date().toISOString(),
    env: {
      NODE_ENV: process.env.NODE_ENV,
      DATABASE_URL: process.env.DATABASE_URL ? 'SET' : 'NOT SET',
      NEXTAUTH_URL: process.env.NEXTAUTH_URL,
      RECAPTCHA_SECRET_KEY: process.env.RECAPTCHA_SECRET_KEY ? 'SET' : 'NOT SET',
    },
    database: {
      connected: false,
      error: null as string | null,
      tables: [] as string[],
    },
  }

  // Test database connection
  try {
    await prisma.$connect()
    debugInfo.database.connected = true

    // Check if tables exist
    const tables = await prisma.$queryRaw<Array<{ table_name: string }>>`
      SELECT table_name
      FROM information_schema.tables
      WHERE table_schema = DATABASE()
      AND table_name IN ('short_links', 'visitors', 'microsites', 'users')
    `
    debugInfo.database.tables = tables.map(t => t.table_name)

    // Try to query visitors table
    const visitorCount = await prisma.visitor.count()
    debugInfo.database.tables.push(`visitors (count: ${visitorCount})`)

    // Try to query short_links table
    const shortlinkCount = await prisma.shortLink.count()
    debugInfo.database.tables.push(`short_links (count: ${shortlinkCount})`)

  } catch (error) {
    debugInfo.database.error = error instanceof Error
      ? error.message
      : String(error)
    console.error('Database debug error:', error)
  }

  return NextResponse.json(debugInfo)
}
