const express = require('express');
const router = express.Router();

// Importă conexiunea la baza de date
const pool = require('../db'); 

// Importă middleware-ul de autentificare
const authenticateToken = require('../middleware/auth');

// Endpoint pentru a obține produsele - protejează ruta cu middleware-ul de autentificare
router.post('/', async (req, res) => {
    const { user, produs_necesar, furnizor } = req.body; // Extragem datele din body-ul cererii

    // Verificăm dacă user și produs_necesar sunt prezente
    if (!user || !produs_necesar) {
        return res.status(400).json({ error: 'User and produs_necesar are required' });
    }

    // Construim query-ul de inserare cu posibilitatea ca furnizorul să fie null
    const sql = 'INSERT INTO necesar_pos (user, produs_necesar, furnizor) VALUES (?, ?, ?)';

    try {
        // Executăm query-ul cu datele primite, inclusiv furnizorul (poate fi null)
        const [results] = await pool.promise().query(sql, [user, produs_necesar, furnizor || null]); 
        res.status(201).json({ message: 'Date inserate cu succes', id: results.insertId });
    } catch (err) {
        console.error('Database error:', err);
        res.status(500).json({ error: 'Database error' });
    }
});
router.get('/necesar_produse', async (req, res) => {
    const { furnizor } = req.query; // Extragem parametrii din query string

    let sql = 'SELECT * FROM necesar_pos';
    const params = [];

    // Dacă furnizorul este specificat, adăugăm un filtru la query
    if (furnizor) {
        sql += ' WHERE furnizor = ?';
        params.push(furnizor);
    }

    try {
        // Executăm query-ul
        const [results] = await pool.promise().query(sql, params); 
        res.status(200).json(results);
    } catch (err) {
        console.error('Database error:', err);
        res.status(500).json({ error: 'Database error' });
    }
});
router.post('/sterge_produs_necesar', async (req, res) => {
    const { id_necesar } = req.body; // Extragem `id_necesar` din corpul cererii

    // Verificăm dacă `id_necesar` este specificat
    if (!id_necesar) {
        return res.status(400).json({ error: 'ID necesar pentru ștergere nu a fost furnizat' });
    }

    // SQL pentru ștergerea produsului din baza de date
    const sql = 'DELETE FROM necesar_pos WHERE id_necesar = ?';

    try {
        // Executăm query-ul de ștergere
        const [result] = await pool.promise().query(sql, [id_necesar]);

        // Verificăm dacă ștergerea a afectat vreun rând (produsul exista)
        if (result.affectedRows > 0) {
            res.status(200).json({ message: 'Produs șters cu succes' });
        } else {
            res.status(404).json({ error: 'Produsul nu a fost găsit' });
        }
    } catch (err) {
        console.error('Database error:', err);
        res.status(500).json({ error: 'Eroare la baza de date' });
    }
});

module.exports = router;
