import { get, postJson } from "@/utils/requestService";
import appConfig from "@/utils/appConfig";
import config from "@/config.json";

export default {
  /**
   * 0. 获取系统与用户初始化配置 (user-config)
   * 文档参考: https://gs.batiao8.com/doc/#api-User-user-config
   */
  async getUserConfig(data = {}) {
    return await get(appConfig.baseURL, "/user/config", data);
  },

  /**
   * 1. 发送手机验证码 (send-user-code)
   * 文档参考: https://gs.batiao8.com/doc/#api-User-send-user-code
   * @param {Object} data - { phone: '13800138000' }
   */
  async sendCode(data) {
    return await postJson(appConfig.baseURL, "/user/code", data);
  },

  /**
   * 2. 手机验证码登录 (user-login)
   * 文档参考: https://gs.batiao8.com/doc/#api-User-user-login
   * @param {Object} data - { login_type: 'phone', phone: { phone, code, timestamp } }
   */
  async login(data) {
    return await postJson(appConfig.baseURL, "/user/login", data);
  },

  /**
   * 3. 微信开放平台 code 登录
   */
  async loginByWxCode(code) {
    return await postJson(appConfig.baseURL, "/user/login", {
      type: "weixin",
      data: {
        // appid: config.wxAppId,
        code: code,
        code_type: "wx-web"
      }
    });
  },

  /**
   * 4. 获取微信扫码登录二维码 (可能废弃)
   */
  async getLoginCode(data) {
    return await postJson(appConfig.baseURL, "/weixin/qrcode", data);
  },

  /**
   * 4. 轮询微信扫码状态
   * @param {Object} data - { key: 'xxx' }
   */
  // async askLoginCode(data) {
  //   return await get(appConfig.baseURL, "/weixin/qrcode", data);
  // },

  /**
   * 5. 获取当前登录用户信息
   */
  async getUserInfo(data = {}) {
    return await get(appConfig.baseURL, "/user", data);
  },

  /**
   * 6. 退出登录
   */
  async logout(data = {}) {
    return await postJson(appConfig.baseURL, "/user/logout", data);
  },

  /**
   * 获取商品列表
   * @param {*} data 
   * @returns 
   */
  async getGoods(data = { type: "member" }) {
    return await get(appConfig.baseURL, "/order/goods", data);
  },

  /**
   * 创建订单
   * @param {*} data 
   * @returns 
   */
  async createOrder(data = {}) {
    return await postJson(appConfig.baseURL, "/order", data);
  },

  /**
   * 查询订单
   * @param {*} data 
   * @returns 
   */
  async getOrder(data = {}) {
    return await get(appConfig.baseURL, "/order", data);
  },

  /**
   * 获取app二维码
   * @param {*} data 
   * @returns 
   */
  async getDownloadCode(data) {
    return await get(appConfig.baseURL, "/web/download", data);
  }

};
