const express = require('express'); const router = express.Router(); const jwt = require('jsonwebtoken'); const clubController = require('../controllers/clubController'); const { authenticateJWT } = require('../middleware/authMiddleware'); const requireFeature = require('../middleware/requireFeature'); // 클럽 선택 router.post('/select-club', authenticateJWT, clubController.selectClub); // 모든 클럽 조회 router.get('/', clubController.getAllClubs); // 특정 클럽 조회 router.post('/', authenticateJWT, clubController.getClubById); // 클럽 정보 업데이트 router.put('/', authenticateJWT, clubController.updateClub); // 클럽 삭제 router.delete('/', authenticateJWT, clubController.deleteClub); // 사용자 클럽 목록 조회 router.post('/user', authenticateJWT, clubController.getUserClubs); // 클럽 회원 통계 조회 router.post('/members/stats', authenticateJWT, clubController.getMemberStats); // 클럽 회원 목록 조회 router.post('/members', authenticateJWT, clubController.getClubMembers); // 클럽 회원 추가 router.post('/members/add', authenticateJWT, clubController.addClubMember); // 클럽 회원 수정 router.post('/members/update', authenticateJWT, clubController.updateClubMember); // 클럽 회원 삭제 router.post('/members/delete', authenticateJWT, clubController.deleteClubMember); // 다음 모임 정보 조회 router.post('/meetings/next', authenticateJWT, clubController.getNextMeetings); // 최근 모임 정보 조회 router.post('/meetings/last', authenticateJWT, clubController.getLastMeeting); // 최근 정기 모임 목록 조회 router.post('/meetings/recent', authenticateJWT, clubController.getRecentMeetings); // 점수 통계 조회 router.post('/scores/stats', authenticateJWT, clubController.getScoreStats); // 상위 회원 목록 조회 router.post('/members/top', authenticateJWT, clubController.getTopMembers); // 새 클럽 생성 router.post('/create', authenticateJWT, clubController.createClub); // 클럽 통계 조회 router.post('/statistics', authenticateJWT, requireFeature('statistics'), clubController.getStatistics); // 클럽 기능 관리 router.put('/features', authenticateJWT, clubController.manageClubFeatures); module.exports = router;