import { http } from '@/utils/http'

const pre = import.meta.env.VITE_API_SECONDARY_URL_PREFIX
/**
 * 获取验证码
 * @param phone 手机号
 * @returns ICaptcha 验证码
 */
export function getCode(phoneNo?: string) {
  return http.get<any>(`${pre}/api/user/getCode`, { phoneNo })
}

/**
 * 用户注册
 * @param registerForm 注册表单
 */
export function register(registerForm: any) {
  return http.post<any>(`${pre}/api/user/register`, registerForm)
}
/**
 * 用户登录
 * @param loginForm 登录表单
 */
export function login(loginForm: any) {
  return http.post<any>(`${pre}/api/user/login`, loginForm)
}

/**
 * 获取用户信息
 */
export function getUserInfo() {
  return http.get<any>(`${pre}/api/user/getUserInfo`)
}

/**
 * 退出登录
 */
export function logout() {
  return http.get<void>(`/user/logout`)
}

/**
 * 修改用户信息
 */
export function updateInfo(data: any) {
  return http.post(`${pre}/api/user/updateUser`, data)
}

/**
 * 修改用户密码
 *  入参{newPwd:string,verifyCode:string}
 */
export function updateUserPassword(data: any) {
  return http.get(`${pre}/api/user/resetPwdByCode`, data)
}

/**
 * 获取微信登录凭证
 * @returns Promise 包含微信登录凭证(code)
 */
export function getWxCode() {
  return new Promise<UniApp.LoginRes>((resolve, reject) => {
    uni.login({
      provider: `weixin`,
      success: res => resolve(res),
      fail: err => reject(new Error(err)),
    })
  })
}

/**
 * 微信登录参数
 */

/**
 * 微信登录
 * @param params 微信登录参数，包含code
 * @returns Promise 包含登录结果
 */
export function wxLogin(data: { code: string }) {
  return http.post<any>('/user/wxLogin', data)
}
