/**
 * Testa uma conta do cofre com uma chamada autenticada READ-ONLY via proxy.
 *
 * Prova credenciais + assinatura HMAC + proxy de ponta a ponta, sem alterar
 * nada na exchange (lista anúncios, página 1). Rode no host4, com a conta já
 * cadastrada e o proxy configurado.
 *
 * Uso:
 *   npm run test:account -- <accountId>
 */
import { binanceClientForAccount } from "../src/accounts/client-factory.js";
import { C2CApi } from "../src/binance/c2c-api.js";
import { closePool } from "../src/db/mysql.js";

async function main(): Promise<void> {
  const id = Number(process.argv[2]);
  if (!Number.isInteger(id) || id <= 0) {
    console.error("Uso: npm run test:account -- <accountId>");
    process.exit(2);
  }

  console.log(`Montando cliente Binance da conta ${id} (decifra secret + proxy)...`);
  const client = await binanceClientForAccount(id);
  const api = new C2CApi(client);

  console.log("Chamando listAds (read-only, página 1)...");
  const res = await api.listAds({ page: 1, rows: 1 });
  console.log(`✅ Chamada autenticada OK. Total de anúncios na conta: ${res.total}`);
}

main()
  .catch((err) => {
    console.error("❌ Falha:", err instanceof Error ? err.message : err);
    process.exitCode = 1;
  })
  .finally(() => closePool());
