const express = require('express'); const router = express.Router(); const AdminController = require('../controllers/adminController'); const { requireAuth, requireRole } = require('../middleware/auth'); router.get('/stats', requireAuth, requireRole(['admin']), AdminController.getStats); router.get('/users', requireAuth, requireRole(['admin']), AdminController.getUsers); router.post('/users', requireAuth, requireRole(['admin']), AdminController.createUser); router.put('/users/:id', requireAuth, requireRole(['admin']), AdminController.updateUser); router.delete('/users/:id', requireAuth, requireRole(['admin']), AdminController.deleteUser); // Student Management router.get('/students', requireAuth, requireRole(['admin']), AdminController.getStudents); router.post('/students', requireAuth, requireRole(['admin']), AdminController.createStudent); router.put('/students/:id', requireAuth, requireRole(['admin']), AdminController.updateStudent); router.delete('/students/:id', requireAuth, requireRole(['admin']), AdminController.deleteStudent); // Teacher Management router.get('/teachers', requireAuth, requireRole(['admin']), AdminController.getTeachers); router.post('/teachers', requireAuth, requireRole(['admin']), AdminController.createTeacher); router.put('/teachers/:id', requireAuth, requireRole(['admin']), AdminController.updateTeacher); router.delete('/teachers/:id', requireAuth, requireRole(['admin']), AdminController.deleteTeacher); // Grade Statistics router.get('/grade-stats', requireAuth, requireRole(['admin']), AdminController.getGradeStats); // System Settings router.get('/settings', requireAuth, requireRole(['admin']), AdminController.getSettings); router.post('/settings', requireAuth, requireRole(['admin']), AdminController.saveSettings); // Data Maintenance router.post('/maintenance/backup', requireAuth, requireRole(['admin']), AdminController.backupDatabase); router.post('/maintenance/clear-cache', requireAuth, requireRole(['admin']), AdminController.clearCache); router.post('/maintenance/reset-passwords', requireAuth, requireRole(['admin']), AdminController.resetStudentPasswords); // Data Export router.get('/export/students', requireAuth, requireRole(['admin']), AdminController.exportStudents); router.get('/export/teachers', requireAuth, requireRole(['admin']), AdminController.exportTeachers); router.get('/export/grades', requireAuth, requireRole(['admin']), AdminController.exportGrades); // Operation Logs router.get('/logs', requireAuth, requireRole(['admin']), AdminController.getOperationLogs); module.exports = router;