/** * 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 --senha --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();