const bcrypt = require('bcrypt');
const db = require('../config/db');

async function seedUsuarios() {
    try {
        console.log('[SEED] Insertando usuarios de prueba...');

        var hash = await bcrypt.hash('123456', 10);

        var usuarios = [
            { usuario: 'admin', nombre: 'ADMINISTRADOR DEL SISTEMA', email: 'admin@nexuserp.com', estado: 1 },
            { usuario: 'mrodriguez', nombre: 'MARIA RODRIGUEZ GARCIA', email: 'mrodriguez@nexuserp.com', estado: 1 },
            { usuario: 'jperez', nombre: 'JUAN PEREZ LOPEZ', email: 'jperez@nexuserp.com', estado: 1 },
            { usuario: 'ctorres', nombre: 'CARLOS TORRES MENDOZA', email: 'ctorres@nexuserp.com', estado: 1 },
            { usuario: 'lflores', nombre: 'LUCIA FLORES RAMIREZ', email: 'lflores@nexuserp.com', estado: 0 }
        ];

        for (var u of usuarios) {
            var exists = await db.query('SELECT id_usuario FROM usuarios WHERE usuario = @usuario', { usuario: { type: db.sql.NVarChar(50), value: u.usuario } });
            if (exists.length === 0) {
                var superadmin = u.usuario === 'admin' ? 1 : 0;
                await db.execute(
                    'INSERT INTO usuarios (usuario, nombre_completo, email, password_hash, superadmin, estado, intentos_fallidos, debe_cambiar_pwd) VALUES (@usuario, @nombre, @email, @hash, @superadmin, @estado, 0, 0)',
                    {
                        usuario: { type: db.sql.NVarChar(50), value: u.usuario },
                        nombre: { type: db.sql.NVarChar(150), value: u.nombre },
                        email: { type: db.sql.NVarChar(100), value: u.email },
                        hash: { type: db.sql.NVarChar(255), value: hash },
                        superadmin: { type: db.sql.Bit, value: superadmin },
                        estado: { type: db.sql.Bit, value: u.estado }
                    }
                );
                console.log('  + ' + u.usuario);
            } else {
                console.log('  = ' + u.usuario + ' (ya existe)');
            }
        }

        console.log('[SEED] Usuarios insertados correctamente.');
    } catch (error) {
        console.error('[SEED] Error:', error.message);
    }
}

seedUsuarios().then(function() { process.exit(0); });
