- 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>
71 lines
1.9 KiB
JavaScript
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();
|