import http from './http'

// 백엔드 /api/auth 엔드포인트와 매핑
export const authApi = {
  signup(payload) {
    return http.post('/auth/signup', payload)
  },
  signupEnabled() {
    return http.get('/auth/signup-enabled')
  },
  login(payload) {
    return http.post('/auth/login', payload)
  },
  // 구글 로그인/가입 — GIS에서 받은 ID 토큰 전달
  googleLogin(payload) {
    return http.post('/auth/google', payload)
  },
  googleClientId() {
    return http.get('/auth/google-client-id')
  },
  // 애플 로그인/가입 — Sign in with Apple 에서 받은 identity token 전달
  appleLogin(payload) {
    return http.post('/auth/apple', payload)
  },
  logout() {
    return http.post('/auth/logout')
  },
  me() {
    return http.get('/auth/me')
  },
  changePassword(payload) {
    return http.put('/auth/password', payload)
  },
  // 가입정보 변경 진입 전 비밀번호 재인증
  verifyPassword(password) {
    return http.post('/auth/verify-password', { password })
  },
  // 가입정보(이름/이메일) 변경
  updateProfile(payload) {
    return http.put('/auth/profile', payload)
  },
  // 프로필 사진 변경/해제 — image 가 null/빈값이면 해제(구글 사진으로 폴백)
  updateProfileImage(image) {
    return http.put('/auth/profile-image', { image })
  },
  // 현재 사용자 활동 포인트 (최신값)
  points() {
    return http.get('/auth/points')
  },
  // 포인트 적립/차감 내역 — year+month 지정 시 해당 월, 미지정 시 최근 100건
  pointHistory(year, month) {
    const params = year && month ? { year, month } : {}
    return http.get('/auth/point-history', { params })
  },
  // 현재 사용자 전체 프로필(아바타·포인트 포함) — 재로그인 없이 최신값 동기화
  profile() {
    return http.get('/auth/profile')
  },
  // 회원 탈퇴 — 계정·데이터 전체 삭제
  withdraw() {
    return http.delete('/auth/me')
  },
}
