const express = require('express'); const router = express.Router(); const categoryController = require('../controllers/category.controller'); const authMiddleware = require('../middleware/auth.middleware'); /** * @route GET /api/categories * @desc Get all active categories (guest sees only guest-accessible, auth sees all) * @access Public (optional auth) */ router.get('/', authMiddleware.optionalAuth, categoryController.getAllCategories); /** * @route GET /api/categories/:id * @desc Get category details with question preview and stats * @access Public (optional auth, some categories require auth) */ router.get('/:id', authMiddleware.optionalAuth, categoryController.getCategoryById); /** * @route POST /api/categories * @desc Create new category * @access Private/Admin */ router.post('/', authMiddleware.verifyToken, authMiddleware.isAdmin, categoryController.createCategory); /** * @route PUT /api/categories/:id * @desc Update category * @access Private/Admin */ router.put('/:id', authMiddleware.verifyToken, authMiddleware.isAdmin, categoryController.updateCategory); /** * @route DELETE /api/categories/:id * @desc Delete category (soft delete) * @access Private/Admin */ router.delete('/:id', authMiddleware.verifyToken, authMiddleware.isAdmin, categoryController.deleteCategory); module.exports = router;