import apiClient from './apiClient'; /** * 점수 관리 서비스 */ export default { /** * 모임의 점수 데이터 가져오기 * @param {number} meetingId - 모임 ID * @returns {Promise} - API 응답 */ async getMeetingScores(meetingId) { return apiClient.get(`/meetings/${meetingId}/scores`); }, /** * 점수 저장하기 * @param {number} meetingId - 모임 ID * @param {Array} scores - 점수 데이터 배열 * @returns {Promise} - API 응답 */ async saveScores(meetingId, scores) { return apiClient.post(`/meetings/${meetingId}/scores`, { scores }); }, /** * 특정 참가자의 점수 이력 가져오기 * @param {number} memberId - 회원 ID * @param {number} limit - 가져올 이력 수 * @returns {Promise} - API 응답 */ async getMemberScoreHistory(memberId, limit = 5) { return apiClient.get(`/members/${memberId}/scores/history`, { params: { limit } }); }, /** * 점수 내보내기 * @param {number} meetingId - 모임 ID * @param {string} format - 내보내기 형식 (xlsx, csv, pdf) * @param {Array} content - 내보낼 내용 배열 * @returns {Promise} - API 응답 (파일 다운로드) */ async exportScores(meetingId, format, content) { return apiClient.get(`/meetings/${meetingId}/scores/export`, { params: { format, content: content.join(',') }, responseType: 'blob' }); }, /** * 팀별 점수 가져오기 * @param {number} meetingId - 모임 ID * @returns {Promise} - API 응답 */ async getTeamScores(meetingId) { return apiClient.get(`/meetings/${meetingId}/scores/teams`); }, /** * 개인 순위 가져오기 * @param {number} meetingId - 모임 ID * @param {string} type - 순위 유형 (scratch, handicap) * @param {string} game - 게임 코드 (all, game1, game2, ...) * @returns {Promise} - API 응답 */ async getIndividualRankings(meetingId, type = 'handicap', game = 'all') { return apiClient.get(`/meetings/${meetingId}/scores/rankings/individual`, { params: { type, game } }); }, /** * 팀 순위 가져오기 * @param {number} meetingId - 모임 ID * @returns {Promise} - API 응답 */ async getTeamRankings(meetingId) { return apiClient.get(`/meetings/${meetingId}/scores/rankings/teams`); } };