import apiClient from './api';

/**
 * 사용자 관련 API 서비스
 */
const userService = {
  /**
   * 모든 사용자 조회
   * @returns {Promise} - 사용자 목록
   */
  getAllUsers() {
    return apiClient.get('/users/all');
  },

  /**
   * 특정 사용자 조회
   * @param {Number} id - 사용자 ID
   * @returns {Promise} - 사용자 정보
   */
  getUserById(id) {
    return apiClient.get(`/users/${id}`);
  },

  /**
   * 사용자 정보 업데이트
   * @param {Number} id - 사용자 ID
   * @param {Object} userData - 업데이트할 사용자 정보
   * @returns {Promise} - 업데이트된 사용자 정보
   */
  updateUser(id, userData) {
    return apiClient.put(`/users/${id}`, userData);
  },

  /**
   * 사용자 프로필 조회
   * @returns {Promise} - 사용자 프로필 정보
   */
  getUserProfile() {
    return apiClient.get('/users/profile');
  },

  /**
   * 사용자 프로필 업데이트
   * @param {Object} profileData - 업데이트할 프로필 정보
   * @returns {Promise} - 업데이트된 프로필 정보
   */
  updateUserProfile(profileData) {
    return apiClient.put('/users/profile', profileData);
  },

  /**
   * 사용자 참가 이벤트 조회
   * @param {Number} id - 사용자 ID
   * @returns {Promise} - 이벤트 목록
   */
  getUserEvents(id) {
    return apiClient.get(`/users/${id}/events`);
  },

  /**
   * 사용자 클럽 멤버십 조회
   * @param {Number} id - 사용자 ID
   * @returns {Promise} - 클럽 멤버십 목록
   */
  getUserClubs(id) {
    return apiClient.get(`/users/${id}/clubs`);
  }
};

export default userService;
