const Qualification = require('../models/qualification'); const Certificate = require('../models/certificate'); exports.getDashboard = async (req, res) => { try { const thirtyDaysAgo = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000); const [ qualificationCount, certificationCount, activeQual, revokedQual, activeCert, revokedCert, recentQual, recentCert, recentQualifications, recentCertificates ] = await Promise.all([ Qualification.countDocuments(), Certificate.countDocuments(), Qualification.countDocuments({ status: 'active' }), Qualification.countDocuments({ status: 'revoked' }), Certificate.countDocuments({ status: 'active' }), Certificate.countDocuments({ status: 'revoked' }), Qualification.countDocuments({ createdAt: { $gte: thirtyDaysAgo } }), Certificate.countDocuments({ createdAt: { $gte: thirtyDaysAgo } }), Qualification.find().sort({ createdAt: -1 }).limit(5).populate('department level'), Certificate.find().sort({ createdAt: -1 }).limit(5).populate('department level') ]); res.render('admin/dashboard', { qualificationCount, certificationCount, total: qualificationCount + certificationCount, activeCount: activeQual + activeCert, revokedCount: revokedQual + revokedCert, recentCount: recentQual + recentCert, recentQualifications, recentCertificates, user: req.session.user, layout: 'layouts/admin', title: 'Dashboard' }); } catch (err) { console.error(err); res.render('admin/dashboard', { qualificationCount: 0, certificationCount: 0, total: 0, activeCount: 0, revokedCount: 0, recentCount: 0, recentQualifications: [], recentCertificates: [], user: req.session.user, layout: 'layouts/admin', title: 'Dashboard' }); } };