const express = require('express');
const router = express.Router();
const { DateTime } = require('luxon');

// 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('/operatii_sertar', async (req, res) => {
    const { nume_operatie, actiune, valoare_operatie, explicatie, username } = req.body;

    // Validare simplă
    if (typeof nume_operatie !== 'string' || nume_operatie.length > 100) {
        return res.status(400).json({ error: 'Invalid nume_operatie' });
    }

    const valoareOperatieParsed = parseFloat(valoare_operatie); // Convertim valoarea la număr
    if (isNaN(valoareOperatieParsed)) {
        return res.status(400).json({ error: 'Invalid valoare_operatie' });
    }

    const actiuneParsed = parseInt(actiune, 10); // Convertim actiune la număr întreg
    if (isNaN(actiuneParsed)) {
        return res.status(400).json({ error: 'Invalid actiune' });
    }

    if (typeof explicatie !== 'string' || explicatie.length > 255) { // Verificăm explicatia
        return res.status(400).json({ error: 'Invalid explicatie' });
    }

    // Obținem data curentă conform fusului orar București
    const dataOperatie = DateTime.now().setZone('Europe/Bucharest').toSQL({ includeOffset: false });

    const sql = 'INSERT INTO operatii_sertar (nume_operatie, actiune, valoare_operatie, explicatie, data_operatie, username) VALUES (?, ?, ?, ?, ?, ?)';

    try {
        // Executăm query-ul în baza de date
        await pool.promise().query(sql, [nume_operatie, actiuneParsed, valoareOperatieParsed, explicatie, dataOperatie, username]);
        res.status(201).json({ message: 'Record added successfully' });
    } catch (err) {
        console.error('Database error:', err);
        res.status(500).json({ error: 'Database error' });
    }
});

module.exports = router;
