"use strict";
const common_vendor = require("../../common/vendor.js");
const utils_storage = require("../../utils/storage.js");
const api_user = require("../../api/user.js");
const useUserStore = common_vendor.defineStore("user", {
  unistorage: true,
  // 是否持久化到内存
  state: () => {
    return {
      token: utils_storage.storage.get("crgx_token", ""),
      userInfo: utils_storage.storage.get("crgx_userInfo", null),
      isShowAdver: true
    };
  },
  actions: {
    // 用户微信登录
    login(data) {
      return new Promise((resolve, reject) => {
        api_user.userWxLogin(data).then((response) => {
          const { token } = response;
          const expiryTime = 30 * 86400;
          utils_storage.storage.set("crgx_token", token, expiryTime);
          this.token = token;
          resolve(response);
        }).catch(reject);
      });
    },
    // 账号密码登录
    userlogin(userInfo) {
      return new Promise((resolve, reject) => {
        api_user.userLogin(userInfo).then((res) => {
          const expiryTime = 30 * 86400;
          utils_storage.storage.set("crgx_token", res.token, expiryTime);
          this.token = res.token;
          resolve();
        }).catch((error) => {
          reject(error);
        });
      });
    },
    // 获取用户信息
    getUser() {
      return new Promise((resolve, reject) => {
        api_user.getUserInfo().then((response) => {
          const userInfo = response.data;
          const expiryTime = 30 * 86400;
          utils_storage.storage.set("crgx_userInfo", userInfo, expiryTime);
          this.userInfo = userInfo;
          resolve(response);
        }).catch(reject);
      });
    },
    // 退出登录
    Logout() {
      return new Promise((resolve, reject) => {
        utils_storage.storage.remove("crgx_token");
        utils_storage.storage.remove("crgx_userInfo");
        resolve();
      });
    }
  }
});
exports.useUserStore = useUserStore;