Independent dashboard for CambioReal agents with local SQLite auth and read-only RDS connection. Features login, per-agent transaction filtering, KPIs, charts (Chart.js), and detailed transaction table. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
73 lines
2.2 KiB
JavaScript
73 lines
2.2 KiB
JavaScript
/**
|
|
* 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 <email> --senha <senha> --agente <id> --nome "<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();
|