/** * Player API routes */ const express = require('express'); const { authenticateToken, optionalAuth } = require('../../middleware/auth'); const { asyncHandler } = require('../../middleware/error-handler'); const router = express.Router(); // Import route modules const authRoutes = require('./auth'); const profileRoutes = require('./profile'); const coloniesRoutes = require('./colonies'); const fleetsRoutes = require('./fleets'); const researchRoutes = require('./research'); const galaxyRoutes = require('./galaxy'); const eventsRoutes = require('./events'); const notificationsRoutes = require('./notifications'); // Public routes (no authentication required) router.use('/auth', authRoutes); router.use('/galaxy', optionalAuth('player'), galaxyRoutes); // Protected routes (authentication required) router.use('/profile', authenticateToken('player'), profileRoutes); router.use('/colonies', authenticateToken('player'), coloniesRoutes); router.use('/fleets', authenticateToken('player'), fleetsRoutes); router.use('/research', authenticateToken('player'), researchRoutes); router.use('/events', authenticateToken('player'), eventsRoutes); router.use('/notifications', authenticateToken('player'), notificationsRoutes); // Player status endpoint router.get('/status', authenticateToken('player'), asyncHandler(async (req, res) => { res.json({ status: 'authenticated', player: { id: req.user.id, username: req.user.username, displayName: req.user.display_name, userGroup: req.user.user_group, lastActive: req.user.last_active_at, }, timestamp: new Date().toISOString(), }); })); module.exports = router;