/* Uma sincronização contra a fonte real (PP-10). Manual, fora da suíte.
 * Roda sobre o build (`npm run build`) para usar o mesmo código do servidor. */
require('dotenv/config');
const { NestFactory } = require('@nestjs/core');
const { AppModule } = require('../dist/src/app.module');
const { SyncService } = require('../dist/src/sync/sync.service');

async function main() {
  const app = await NestFactory.createApplicationContext(AppModule, {
    logger: ['warn', 'error'],
  });
  const sync = app.get(SyncService);

  console.log('1a sincronizacao:', await sync.sincronizar('BSA'));
  console.log('2a (idempotente):', await sync.sincronizar('BSA'));

  const [a, b] = await Promise.all([
    sync.sincronizar('BSA'),
    sync.sincronizar('BSA'),
  ]);
  console.log('concorrentes:', {
    a: a.ignorada ? 'ignorada' : 'executou',
    b: b.ignorada ? 'ignorada' : 'executou',
  });

  await app.close();
}

main().catch((e) => {
  console.error('FALHOU:', e.message);
  process.exit(1);
});
