const { pool } = require('../config/databases'); // Afficher la liste des modules avec leur état pour un établissement donné exports.index = async (req, res) => { try { const etablissementId = 1; // À remplacer par auth ou token utilisateur const [modules] = await pool.query(`SELECT * FROM modules`); const [actifsRaw] = await pool.query(` SELECT module_id, est_actif FROM etablissement_modules WHERE etablissement_id = ?`, [etablissementId] ); const actifs = {}; actifsRaw.forEach(row => { actifs[row.module_id] = !!row.est_actif; }); res.render('modules/index', { modules, actifs }); } catch (err) { res.status(500).json({ error: 'Erreur serveur', details: err.message }); } }; // Activer/désactiver un module (AJAX) exports.toggle = async (req, res) => { const { id, actif } = req.body; const moduleId = parseInt(id, 10); const etablissementId = 1; // Authentification future ici try { const [existing] = await pool.query( `SELECT id FROM etablissement_modules WHERE module_id = ? AND etablissement_id = ?`, [moduleId, etablissementId] ); if (existing.length > 0) { await pool.query( `UPDATE etablissement_modules SET est_actif = ? WHERE id = ?`, [actif ? 1 : 0, existing[0].id] ); } else { await pool.query( `INSERT INTO etablissement_modules (module_id, etablissement_id, est_actif) VALUES (?, ?, ?)`, [moduleId, etablissementId, actif ? 1 : 0] ); } res.json({ success: true }); } catch (err) { res.status(500).json({ success: false, error: err.message }); } };