const express = require('express');
const bcrypt = require('bcryptjs');
const jwt = require('jsonwebtoken');
const router = express.Router();

// Importă conexiunea la baza de date
const pool = require('../db');  // Ajustează calea în funcție de locația fișierului

// Ruta de login
router.post('/', async (req, res) => {
    const { username, password } = req.body;

    try {
        const [results] = await pool.promise().query('SELECT * FROM users WHERE username = ?', [username]);

        if (results.length === 0) {
            return res.status(401).json({ message: 'Invalid username or password' });
        }

        const user = results[0];
        const match = await bcrypt.compare(password, user.password);

        if (match) {
            const token = jwt.sign(
                { username: user.username, role: user.role },
                process.env.JWT_SECRET,
                { expiresIn: '1h' }
            );

            res.json({ token, role: user.role, username: user.username });
        } else {
            res.status(401).json({ message: 'Invalid username or password' });
        }
    } catch (err) {
        console.error('Error logging in:', err);
        res.status(500).json({ message: 'Error logging in' });
    }
});

// Exportă router-ul pentru a fi folosit în server.js
module.exports = router;
