const express = require('express'); const router = express.Router(); const bcrypt = require('bcrypt'); const jwt = require('jsonwebtoken'); const { query } = require('../config/database'); router.post('/login', async (req, res) => { try { const { email, password } = req.body; if (!email || !password) { return res.status(400).json({ error: 'Email e senha são obrigatórios' }); } const result = await query( 'SELECT id, email, name, password, role, company_id, is_active FROM admin_users WHERE email = $1', [email.toLowerCase()] ); if (result.rows.length === 0) { return res.status(401).json({ error: 'Credenciais inválidas' }); } const user = result.rows[0]; if (!user.is_active) { return res.status(403).json({ error: 'Usuário inativo' }); } const validPassword = await bcrypt.compare(password, user.password); if (!validPassword) { return res.status(401).json({ error: 'Credenciais inválidas' }); } const token = jwt.sign( { id: user.id, email: user.email, role: user.role, company_id: user.company_id }, process.env.JWT_SECRET, { expiresIn: '24h' } ); res.json({ success: true, token, user: { id: user.id, email: user.email, name: user.name, role: user.role, company_id: user.company_id } }); } catch (error) { console.error('Erro no login:', error); res.status(500).json({ error: 'Erro ao fazer login' }); } }); module.exports = router;