// pages/profile/profile.ts
const app = getApp<IAppOption>()

Page({
  data: {
    userInfo: null as any,
    historyList: [] as any[]
  },

  // 每次切换到这个页面时都会触发 onShow
  onShow() {
    this.checkLoginStatus();
  },

  // 检查登录状态并获取数据
  checkLoginStatus() {
    // 1. 先尝试从全局变量获取
    let userInfo = app.globalData.userInfo;
    
    // 2. 如果全局变量没有，尝试从本地缓存获取兜底
    if (!userInfo) {
      const cachedInfo = wx.getStorageSync('userInfo');
      if (cachedInfo) {
        userInfo = cachedInfo;
        app.globalData.userInfo = cachedInfo; // 同步回全局变量
      }
    }

    // 3. 判断最终是否拿到了用户信息
    if (userInfo) {
      // 已登录，设置用户信息并获取历史记录
      this.setData({ userInfo: userInfo });
      this.fetchHistoryRecords(userInfo.user_id);
    } else {
      // 如果都没拿到，说明未登录，强制跳转到登录页
      this.setData({ userInfo: null, historyList: [] });
      wx.showToast({ title: '请先登录', icon: 'none' });
      setTimeout(() => {
        wx.navigateTo({ url: '/pages/login/login' });
      }, 800);
    }
  },

  // 请求后端历史记录
  fetchHistoryRecords(userId: string | number) {
    wx.showLoading({ title: '加载记录中...' });
    wx.request({
      // 注意：这里去掉了 /app01，直接请求 /api/history/ 避免 404 报错
      url: `${app.globalData.baseUrl}/api/history/`,
      method: 'POST',
      data: { user_id: userId },
      success: (res: any) => {
        wx.hideLoading();
        if (res.data.code === 200) {
          this.setData({ historyList: res.data.data });
        } else {
          wx.showToast({ title: res.data.msg || '获取记录失败', icon: 'none' });
        }
      },
      fail: () => {
        wx.hideLoading();
        wx.showToast({ title: '网络请求失败', icon: 'none' });
      }
    });
  },

  // 退出登录逻辑
  handleLogout() {
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 1. 清空本地缓存（极其重要，否则依然处于登录状态）
          wx.removeStorageSync('userInfo');
          
          // 2. 清空全局变量
          app.globalData.userInfo = null;
          
          // 3. 清空页面数据
          this.setData({ userInfo: null, historyList: [] });
          
          // 4. 跳转回登录页
          wx.reLaunch({ url: '/pages/login/login' });
        }
      }
    });
  }
})