import api from './index.js';

/**
 * 授权登录相关接口
 */
export const authApi = {

  /**
   * pc端手机号码验证码登录
   * @param {Object} params 登录参数
   * @param {string} params.code 验证码
   * @param {string} params.phone 手机号
   */
  phoneLogin(params) {
    return api.get('/all_login/phoneLogin', { params });
  },

  /**
   * 发送手机验证码
   * @param {Object} params 参数
   * @param {string} params.phone 手机号
   */
  phoneSendCode(params) {
    return api.get('/all_login/phoneSendCode', { params });
  },

  /**
   * 获取平台基础配置信息
   */
  getConfig() {
    return api.get('/all_login/getConfig');
  },

  /**
   * 获取用户信息
   */
  getUserByToken() {
    return api.get('/all_login/getUserByToken');
  },

  /**
   * 更新用户信息
   * @param {Object} userInfo 用户信息
   * @param {string} userInfo.avatarUrl 头像
   * @param {string} userInfo.details 简介
   * @param {string} userInfo.name 别名
   * @param {string} userInfo.nickName 昵称
   * @param {string} userInfo.phone 电话
   */
  updateUserInfo(userInfo) {
    return api.post('/all_login/updateUserInfo', null, {
      params: userInfo
    });
  },

  /**
   * 手动登出
   * 清除所有登录状态和用户数据
   */
  logout() {
    console.log('[Auth] 手动登出');
    
    // 清除本地存储
    localStorage.removeItem('X-Access-Token');
    localStorage.removeItem('token');
    localStorage.removeItem('user');
    localStorage.removeItem('isAuthor');
    localStorage.removeItem('bookshelf');
    
    // 清除store状态
    try {
      import('../store/index.js').then(({ useMainStore }) => {
        const store = useMainStore();
        store.logout();
        console.log('[Auth] Store状态已清除');
      });
    } catch (err) {
      console.warn('[Auth] 无法清除store状态:', err);
    }
    
    // 跳转到首页
    if (window.location.pathname !== '/') {
      window.location.href = '/';
    }
  },

  /**
   * 检查当前登录状态
   */
  checkLoginStatus() {
    const token = localStorage.getItem('X-Access-Token');
    const user = localStorage.getItem('user');
    
    try {
      const userInfo = user ? JSON.parse(user) : null;
      return {
        isLoggedIn: !!(token && userInfo),
        token,
        user: userInfo,
        isAuthor: userInfo?.isAuthor || localStorage.getItem('isAuthor') === 'true'
      };
    } catch (err) {
      console.warn('[Auth] 解析用户信息失败:', err);
      return {
        isLoggedIn: false,
        token: null,
        user: null,
        isAuthor: false
      };
    }
  },
}; 