This commit is contained in:
2025-04-17 23:32:39 +09:00
commit 5b719b6766
105 changed files with 25653 additions and 0 deletions
+351
View File
@@ -0,0 +1,351 @@
import apiClient from './api';
/**
* 관리자 API 서비스
*/
const adminService = {
/**
* 모든 클럽 목록 조회
* @returns {Promise} - 클럽 목록
*/
getClubs() {
return apiClient.get('/api/admin/clubs');
},
/**
* 모든 클럽 조회
* @returns {Promise} - 클럽 목록
*/
getAllClubs() {
return apiClient.get('/api/admin/clubs');
},
/**
* 특정 클럽 조회
* @param {Number} id - 클럽 ID
* @returns {Promise} - 클럽 정보
*/
getClubById(id) {
return apiClient.get(`/api/admin/clubs/${id}`);
},
/**
* 클럽 정보 업데이트
* @param {Number} id - 클럽 ID
* @param {Object} clubData - 업데이트할 클럽 정보
* @returns {Promise} - 업데이트된 클럽 정보
*/
updateClub(id, clubData) {
return apiClient.put(`/api/admin/clubs/${id}`, clubData);
},
/**
* 클럽 삭제
* @param {Number} id - 클럽 ID
* @returns {Promise} - 삭제 결과
*/
deleteClub(id) {
return apiClient.delete(`/api/admin/clubs/${id}`);
},
/**
* 클럽 멤버 조회
* @param {Number} id - 클럽 ID
* @returns {Promise} - 클럽 멤버 목록
*/
getClubMembers(id) {
return apiClient.get(`/api/admin/clubs/${id}/members`);
},
/**
* 클럽 멤버 추가
* @param {Number} id - 클럽 ID
* @param {Object} memberData - 멤버 정보
* @returns {Promise} - 추가된 멤버 정보
*/
addClubMember(id, memberData) {
return apiClient.post(`/api/admin/clubs/${id}/members`, memberData);
},
/**
* 클럽 멤버 정보 업데이트
* @param {Number} clubId - 클럽 ID
* @param {Number} memberId - 멤버 ID
* @param {Object} memberData - 업데이트할 멤버 정보
* @returns {Promise} - 업데이트된 멤버 정보
*/
updateClubMember(clubId, memberId, memberData) {
return apiClient.put(`/api/admin/clubs/${clubId}/members/${memberId}`, memberData);
},
/**
* 클럽 회원 삭제
* @param {Number} clubId - 클럽 ID
* @param {Number} memberId - 멤버 ID
* @returns {Promise} - 삭제 결과
*/
deleteClubMember(clubId, memberId) {
return apiClient.delete(`/api/admin/clubs/${clubId}/members/${memberId}`);
},
/**
* 모든 사용자 조회
* @returns {Promise} - 사용자 목록
*/
getAllUsers() {
return apiClient.get('/api/admin/users');
},
/**
* 특정 사용자 조회
* @param {Number} id - 사용자 ID
* @returns {Promise} - 사용자 정보
*/
getUserById(id) {
return apiClient.get(`/api/admin/users/${id}`);
},
/**
* 사용자 정보 업데이트
* @param {Number} id - 사용자 ID
* @param {Object} userData - 업데이트할 사용자 정보
* @returns {Promise} - 업데이트된 사용자 정보
*/
updateUser(id, userData) {
return apiClient.put(`/api/admin/users/${id}`, userData);
},
/**
* 사용자 삭제
* @param {Number} id - 사용자 ID
* @returns {Promise} - 삭제 결과
*/
deleteUser(id) {
return apiClient.delete(`/api/admin/users/${id}`);
},
/**
* 모든 이벤트 조회
* @returns {Promise} - 이벤트 목록
*/
getAllEvents() {
return apiClient.get('/api/admin/events');
},
/**
* 특정 이벤트 조회
* @param {Number} id - 이벤트 ID
* @returns {Promise} - 이벤트 정보
*/
getEventById(id) {
return apiClient.get(`/api/admin/events/${id}`);
},
/**
* 새 이벤트 생성
* @param {Object} eventData - 이벤트 정보
* @returns {Promise} - 생성된 이벤트 정보
*/
createEvent(eventData) {
return apiClient.post('/api/admin/events', eventData);
},
/**
* 이벤트 정보 업데이트
* @param {Number} id - 이벤트 ID
* @param {Object} eventData - 업데이트할 이벤트 정보
* @returns {Promise} - 업데이트된 이벤트 정보
*/
updateEvent(id, eventData) {
return apiClient.put(`/api/admin/events/${id}`, eventData);
},
/**
* 이벤트 삭제
* @param {Number} id - 이벤트 ID
* @returns {Promise} - 삭제 결과
*/
deleteEvent(id) {
return apiClient.delete(`/api/admin/events/${id}`);
},
/**
* 이벤트 참가자 목록 조회
* @param {Number} eventId - 이벤트 ID
* @returns {Promise} - 참가자 목록
*/
getEventParticipants(eventId) {
return apiClient.get(`/api/admin/events/${eventId}/participants`);
},
/**
* 이벤트 참가자 추가
* @param {Number} eventId - 이벤트 ID
* @param {Number} userId - 사용자 ID
* @returns {Promise} - 추가된 참가자 정보
*/
addEventParticipant(eventId, userId) {
return apiClient.post(`/api/admin/events/${eventId}/participants`, { userId });
},
/**
* 이벤트 참가자 상태 업데이트
* @param {Number} eventId - 이벤트 ID
* @param {Number} participantId - 참가자 ID
* @param {String} status - 새로운 상태
* @returns {Promise} - 업데이트된 참가자 정보
*/
updateEventParticipantStatus(eventId, participantId, status) {
return apiClient.put(`/api/admin/events/${eventId}/participants/${participantId}`, { status });
},
/**
* 이벤트 참가자 제거
* @param {Number} eventId - 이벤트 ID
* @param {Number} participantId - 참가자 ID
* @returns {Promise} - 제거 결과
*/
removeEventParticipant(eventId, participantId) {
return apiClient.delete(`/api/admin/events/${eventId}/participants/${participantId}`);
},
/**
* 구독 플랜 목록 조회
* @returns {Promise} - 구독 플랜 목록
*/
getPlans() {
return apiClient.get('/api/admin/subscriptions/plans');
},
/**
* 특정 구독 플랜 조회
* @param {Number} id - 구독 플랜 ID
* @returns {Promise} - 구독 플랜 정보
*/
getPlanById(id) {
return apiClient.get(`/api/admin/subscriptions/plans/${id}`);
},
/**
* 새 구독 플랜 생성
* @param {Object} planData - 구독 플랜 정보
* @returns {Promise} - 생성된 구독 플랜 정보
*/
createPlan(planData) {
return apiClient.post('/api/admin/subscriptions/plans', planData);
},
/**
* 구독 플랜 정보 업데이트
* @param {Number} id - 구독 플랜 ID
* @param {Object} planData - 업데이트할 구독 플랜 정보
* @returns {Promise} - 업데이트된 구독 플랜 정보
*/
updatePlan(id, planData) {
return apiClient.put(`/api/admin/subscriptions/plans/${id}`, planData);
},
/**
* 구독 플랜 삭제
* @param {Number} id - 구독 플랜 ID
* @returns {Promise} - 삭제 결과
*/
deletePlan(id) {
return apiClient.delete(`/api/admin/subscriptions/plans/${id}`);
},
/**
* 모든 구독 목록 조회
* @returns {Promise} - 구독 목록
*/
getSubscriptions() {
return apiClient.get('/api/admin/subscriptions');
},
/**
* 구독 플랜의 구독 목록 조회
* @param {Number} planId - 구독 플랜 ID
* @returns {Promise} - 구독 목록
*/
getPlanSubscriptions(planId) {
return apiClient.get(`/api/admin/subscriptions/plans/${planId}/subscriptions`);
},
/**
* 모든 기능 목록 조회
* @returns {Promise} - 기능 목록
*/
getFeatures() {
return apiClient.get('/api/admin/features');
},
/**
* 새 구독 생성
* @param {Object} subscriptionData - 구독 정보
* @returns {Promise} - 생성된 구독 정보
*/
createSubscription(subscriptionData) {
return apiClient.post('/api/admin/subscriptions', subscriptionData);
},
/**
* 구독 정보 업데이트
* @param {Number} id - 구독 ID
* @param {Object} subscriptionData - 업데이트할 구독 정보
* @returns {Promise} - 업데이트된 구독 정보
*/
updateSubscription(id, subscriptionData) {
return apiClient.put(`/api/admin/subscriptions/${id}`, subscriptionData);
},
/**
* 구독 삭제
* @param {Number} id - 구독 ID
* @returns {Promise} - 삭제 결과
*/
deleteSubscription(id) {
return apiClient.delete(`/api/admin/subscriptions/${id}`);
},
/**
* 대시보드 데이터 조회
* @returns {Promise} - 대시보드 데이터
*/
getDashboardData() {
return apiClient.get('/api/admin/dashboard');
},
/**
* 최근 활동 조회
* @returns {Promise} - 최근 활동 목록
*/
getRecentActivities() {
return apiClient.get('/api/admin/activities/recent');
},
/**
* 통계 데이터 조회
* @returns {Promise} - 통계 데이터
*/
getStatistics() {
return apiClient.get('/api/admin/statistics');
},
/**
* 클럽 기능 관리
* @param {Number} clubId - 클럽 ID
* @param {Object} features - 클럽 기능 정보
* @returns {Promise} - 클럽 기능 정보
*/
manageClubFeatures: async (clubId, features) => {
try {
const response = await apiClient.put(`/api/admin/clubs/${clubId}/features`, { features });
return response.data;
} catch (error) {
console.error('클럽 기능 관리 중 오류:', error);
throw error;
}
}
};
export default adminService;