/** * CLI para cadastrar agentes no SQLite * * Uso: * node scripts/seed-agente.js --email valorfx@cambioreal.com --senha 123456 --agente 76 --nome "ValorFx" * * Listar agentes: * node scripts/seed-agente.js --list */ require('dotenv').config({ path: require('path').join(__dirname, '..', '.env') }); const db = require('../src/db-local'); const { createAgente } = require('../src/auth'); const args = process.argv.slice(2); function getArg(name) { const idx = args.indexOf('--' + name); return idx !== -1 && args[idx + 1] ? args[idx + 1] : null; } async function main() { // List mode if (args.includes('--list')) { const rows = db.prepare('SELECT id, email, agente_id, nome, ativo, created_at FROM agentes').all(); if (!rows.length) { console.log('Nenhum agente cadastrado.'); } else { console.log('\n ID | Agente ID | Nome | Email | Ativo | Criado em'); console.log(' ' + '-'.repeat(95)); rows.forEach(r => { console.log(` ${String(r.id).padEnd(3)}| ${String(r.agente_id).padEnd(10)}| ${r.nome.padEnd(19)}| ${r.email.padEnd(29)}| ${r.ativo ? 'Sim' : 'Nao'} | ${r.created_at}`); }); } console.log(); process.exit(0); } // Create mode const email = getArg('email'); const senha = getArg('senha'); const agenteId = getArg('agente'); const nome = getArg('nome'); if (!email || !senha || !agenteId || !nome) { console.log(` Uso: node scripts/seed-agente.js --email --senha --agente --nome "" Exemplos: node scripts/seed-agente.js --email valorfx@cambioreal.com --senha 123456 --agente 76 --nome "ValorFx" node scripts/seed-agente.js --list `); process.exit(1); } try { await createAgente(email, senha, parseInt(agenteId), nome); console.log(`\n Agente cadastrado com sucesso!`); console.log(` Nome: ${nome}`); console.log(` Email: ${email}`); console.log(` Agente ID: ${agenteId}\n`); } catch (err) { if (err.message.includes('UNIQUE')) { console.error(`\n Erro: email "${email}" ja esta cadastrado.\n`); } else { console.error('Erro:', err.message); } process.exit(1); } } main();