Files
bi-agents/scripts/seed-admin.js
root 96222aa6a2 chore: adiciona Docker, scripts e documentacao
- Adiciona Dockerfile e docker-compose para containerizacao
- Adiciona docker-entrypoint.sh com inicializacao
- Adiciona scripts/seed-admin.js para criar admin inicial
- Adiciona docs/ com logos originais CambioReal
- Atualiza README.md com instrucoes de uso
- Atualiza queries.js com metricas de portfólio

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 13:20:15 -05:00

71 lines
1.9 KiB
JavaScript

/**
* CLI para cadastrar administradores no SQLite
*
* Uso:
* node scripts/seed-admin.js --email admin@cambioreal.com --senha 123456 --nome "Admin"
*
* Listar admins:
* node scripts/seed-admin.js --list
*/
require('dotenv').config({ path: require('path').join(__dirname, '..', '.env') });
const db = require('../src/db-local');
const { createAdmin } = require('../src/admin-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, nome, created_at FROM admins').all();
if (!rows.length) {
console.log('Nenhum administrador cadastrado.');
} else {
console.log('\n ID | Nome | Email | Criado em');
console.log(' ' + '-'.repeat(75));
rows.forEach(r => {
console.log(` ${String(r.id).padEnd(3)}| ${r.nome.padEnd(19)}| ${r.email.padEnd(29)}| ${r.created_at}`);
});
}
console.log();
process.exit(0);
}
// Create mode
const email = getArg('email');
const senha = getArg('senha');
const nome = getArg('nome');
if (!email || !senha || !nome) {
console.log(`
Uso: node scripts/seed-admin.js --email <email> --senha <senha> --nome "<nome>"
Exemplos:
node scripts/seed-admin.js --email admin@cambioreal.com --senha 123456 --nome "Admin"
node scripts/seed-admin.js --list
`);
process.exit(1);
}
try {
await createAdmin(email, senha, nome);
console.log(`\n Administrador cadastrado com sucesso!`);
console.log(` Nome: ${nome}`);
console.log(` Email: ${email}\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();