import apiClient from './api';

/**
 * 클럽 관련 API 서비스
 */
const clubService = {
  /**
   * 모든 클럽 조회
   * @returns {Promise} - 클럽 목록
   */
  getAllClubs() {
    return apiClient.get('/api/club');
  },

  /**
   * 특정 클럽 조회
   * @param {Number} id - 클럽 ID
   * @returns {Promise} - 클럽 정보
   */
  getClubById(id) {
    return apiClient.post(`/api/club`, { clubId: id });
  },

  /**
   * 새 클럽 생성
   * @param {Object} clubData - 클럽 정보
   * @returns {Promise} - 생성된 클럽 정보
   */
  createClub(clubData) {
    return apiClient.post('/api/club/create', clubData);
  },

  /**
   * 클럽 정보 업데이트
   * @param {Number} id - 클럽 ID
   * @param {Object} clubData - 업데이트할 클럽 정보
   * @returns {Promise} - 업데이트된 클럽 정보
   */
  updateClub(id, clubData) {
    return apiClient.put(`/api/club`, { clubId: id, ...clubData });
  },

  /**
   * 클럽 삭제
   * @param {Number} id - 클럽 ID
   * @returns {Promise} - 삭제 결과
   */
  deleteClub(id) {
    return apiClient.delete(`/api/club`, { clubId: id });
  },

  /**
   * 클럽 회원 목록 조회
   * @param {Number} clubId - 클럽 ID
   * @returns {Promise} - 회원 목록
   */
  getClubMembers(clubId) {
    return apiClient.post('/api/club/members', { clubId });
  },

  /**
   * 클럽 회원 추가
   * @param {Number} clubId - 클럽 ID
   * @param {Object} memberData - 회원 정보
   * @returns {Promise} - 추가된 회원 정보
   */
  addClubMember(clubId, memberData) {
    return apiClient.post('/api/club/members/add', { 
      clubId,
      ...memberData 
    });
  },

  /**
   * 클럽 회원 정보 수정
   * @param {Number} clubId - 클럽 ID
   * @param {Number} memberId - 회원 ID
   * @param {Object} memberData - 수정할 회원 정보
   * @returns {Promise} - 수정된 회원 정보
   */
  updateClubMember(clubId, memberId, memberData) {
    return apiClient.post('/api/club/members/update', {
      clubId,
      memberId,
      ...memberData
    });
  },
  
  /**
   * 클럽 회원 삭제
   * @param {Number} clubId - 클럽 ID
   * @param {Number} memberId - 회원 ID
   * @returns {Promise} - 삭제 결과
   */
  deleteClubMember(clubId, memberId) {
    return apiClient.post('/api/club/members/delete', { clubId, memberId });
  },
  


  /**
   * 클럽 회원 통계 조회
   * @param {Number} clubId - 클럽 ID
   * @returns {Promise} - 회원 통계 정보
   */
  getMemberStats(clubId) {
    return apiClient.post('/api/club/members/stats', { clubId });
  }
};

export default clubService;
