const { request } = require('./request')
/**
 * 获取验证码
 * @param obj
 * @returns {Promise<unknown>}
 */
export const sendCode = (obj) => request({
  url: '/api/send/code',
  method: 'POST',
  data: {
    'phone': obj.phone, // 手机号码
    'source_type': 2, // 来源(1客运端2客户端)
    'type': obj.type // 1注册2登录3更换手机号
  },
  showLoading: false
})

/**
 * 手机号登录
 * @param obj
 * @returns {Promise<*>}
 */
export const miniPhoneLogin = (obj) => request({
  url: '/api/user/mini/phone/login',
  method: 'POST',
  data: {
    'code': obj.wxCode, // 小程序授权code
    'user_phone': obj.cellphone, // 手机号
    'user_code': obj.code // 验证码
  },
  showLoading: false
})

/**
 * 修改用户手机号
 * @param obj
 * @returns {Promise<unknown>}
 */
export const modifyUserPhone = (obj) => request({
  url: '/api/user/modify/phone',
  method: 'POST',
  data: {
    'user_phone': obj.cellphone, // 手机号
    'user_code': obj.code // 验证码
  },
  showLoading: false
})

/**
 * 校验手机验证码
 * @param obj
 * @returns {Promise | Promise<unknown>}
 */
export const postCheckSMS = (obj) => request({
  url: '/api/check/code',
  method: 'POST',
  data: {
    'user_phone': obj.phone,
    'source_type': 2, // 来源(1客运端2客户端)
    'user_code': obj.code //验证码
  },
  showLoading: false
})

/**
 * 获取用户信息
 * @returns {Promise<unknown>}
 */
export const getUserInfo = () => request({
  url: '/api/user/info',
  method: 'POST',
  showLoading: false
}, false)

/**
 * 更新用户信息
 * @param obj
 * @returns {Promise<unknown>}
 */
export const updateUserInfo = (obj) => request({
  url: '/api/user/update/info',
  method: 'POST',
  data: {
    // 'user_head_img_url': '', // 用户头像
    // 'user_nickname': '', // 用户昵称
    // 'user_sex': 1, // 性别(1男2女)
    // 'user_birthday': '', // 用户生日
    // 'user_address': '', // 用户地址
    ...obj
  },
  showLoading: true
})

/**
 * 用户退出登录接口
 * @returns {Promise<unknown>}
 */
export const userLoginOut = () => request({
  url: '/api/user/login/out',
  method: 'POST',
  showLoading: false
})

/**
 * 逆地址解析
 * @param lat
 * @param lng
 * @returns {Promise}
 */
export const postGeoCoder = (lat, lng) => request({
  url: '/api/user/geo/coder',
  method: 'POST',
  data: {
    lat: lat,
    lng: lng
  },
  showLoading: false
})
