import { NextRequest, NextResponse } from 'next/server'
import { query } from '@/lib/db'

export async function GET(
  _req: NextRequest,
  { params }: { params: Promise<{ doc: string }> },
) {
  const { doc } = await params
  const cpf_cnpj = decodeURIComponent(doc)

  // Dados do contato (primeiro registro)
  const [contato] = await query(
    `SELECT
       sa.nome_socio, sa.cpf_cnpj_socio,
       sa.qualificacao_socio_codigo, sa.qualificacao_socio_desc,
       sa.nome_representante, sa.qualificacao_representante_desc
     FROM socios_administradores sa
     WHERE sa.cpf_cnpj_socio = $1
     LIMIT 1`,
    [cpf_cnpj],
  )

  if (!contato) return NextResponse.json({ error: 'not found' }, { status: 404 })

  // Todas as empresas vinculadas a este CPF/CNPJ
  const empresas = await query(
    `SELECT
       e.cnpj, e.razao_social, e.nome_fantasia,
       e.municipio, e.uf, e.cnae_principal,
       e.ddd1, e.telefone1, e.email,
       sa.qualificacao_socio_desc, sa.eh_administrador,
       sa.data_entrada_sociedade,
       sn.opcao_simples, sn.opcao_mei,
       COALESCE(cl.stage, 'novo') AS stage
     FROM socios_administradores sa
     JOIN empresas_monitoradas e ON e.cnpj = sa.cnpj_empresa
     LEFT JOIN simples_nacional sn ON sn.cnpj_basico = e.cnpj_basico
     LEFT JOIN crm_leads cl ON cl.cnpj = e.cnpj
     WHERE sa.cpf_cnpj_socio = $1
     ORDER BY sa.eh_administrador DESC, e.razao_social`,
    [cpf_cnpj],
  )

  return NextResponse.json({ contato, empresas })
}
