const express = require('express'); const router = express.Router(); const usersCtrl = require('../../controllers/admin/users.controller'); const activityCtrl = require('../../controllers/admin/user_activity.controller'); const { sensitiveOpsLimiter } = require('../../middleware/rateLimiter.middleware'); router.post('/bulk/restore', sensitiveOpsLimiter, usersCtrl.bulkRestoreUsers); router.delete('/bulk', sensitiveOpsLimiter, usersCtrl.bulkDeactivateUsers); router.delete('/bulk/permanent', sensitiveOpsLimiter, usersCtrl.bulkPermanentlyDeleteUsers); router.get('/field-values', usersCtrl.getUserFieldValues); router.get('/archived', usersCtrl.getArchivedUsers); router.post('/staff', sensitiveOpsLimiter, usersCtrl.addStaffUser); router.get('/', usersCtrl.getUsers); router.get('/:id', usersCtrl.getUser); router.put('/:id', sensitiveOpsLimiter, usersCtrl.updateUser); router.delete('/:id', sensitiveOpsLimiter, usersCtrl.deactivateUser); router.delete('/:id/permanent', sensitiveOpsLimiter, usersCtrl.permanentlyDeleteUser); router.post('/:id/restore', sensitiveOpsLimiter, usersCtrl.restoreUser); // ── Bans ────────────────────────────────────────────────────────────────────── router.post('/bulk/ban', sensitiveOpsLimiter, usersCtrl.bulkBanUsers); router.post('/bulk/unban', sensitiveOpsLimiter, usersCtrl.bulkUnbanUsers); router.get('/:id/bans', usersCtrl.getUserBans); router.post('/:id/ban', sensitiveOpsLimiter, usersCtrl.banUser); router.post('/:id/unban', sensitiveOpsLimiter, usersCtrl.unbanUser); // ── Sessions ────────────────────────────────────────────────────────────────── router.get('/:id/sessions', usersCtrl.getUserSessions); router.delete('/:id/sessions/:sid', sensitiveOpsLimiter, usersCtrl.terminateSession); // ── Achievements ────────────────────────────────────────────────────────────── router.get('/:id/achievements', usersCtrl.getUserAchievements); // ── Activity ────────────────────────────────────────────────────────────────── router.get('/:id/activity', activityCtrl.getUserActivity); module.exports = router;