import { Pool } from 'pg'

const pool = new Pool({ connectionString: process.env.POSTGRES_DSN })

// Sem esse listener, um erro numa conexão ociosa do pool (reset de rede,
// timeout, Postgres reiniciando) vira exceção não tratada e derruba o
// processo Node inteiro.
pool.on('error', (err) => {
  console.error('Erro no pool do Postgres:', err)
})

export async function query<T = Record<string, unknown>>(
  text: string,
  params?: unknown[],
): Promise<T[]> {
  const result = await pool.query(text, params)
  return result.rows as T[]
}
