import { NextRequest, NextResponse } from 'next/server'
import { getSessionFromRequest } from '@/lib/session'
import pool from '@/lib/db'

export async function GET(req: NextRequest) {
  const user = await getSessionFromRequest(req)
  if (!user) {
    return NextResponse.json({ user: null }, { status: 401 })
  }

  let tenant_name: string | null = null
  const tenantId = (user as any).tenant_id ?? (user as any).tenantId
  if (tenantId) {
    const [rows] = await pool.execute<any[]>('SELECT name FROM tenants WHERE id = ? LIMIT 1', [tenantId])
    tenant_name = rows[0]?.name ?? null
  }

  return NextResponse.json({
    user: {
      id: user.id,
      name: user.name,
      email: user.email,
      role: user.role,
      tenant_id: tenantId ?? null,
      tenant_name,
      mfa_enabled: user.mfa_enabled,
    },
  })
}
