// 本地存储工具
const TOKEN_KEY = 'token';
const USER_INFO_KEY = 'userInfo';

// 检查是否是 H5 环境
const isH5 = typeof window !== 'undefined' && window.document !== undefined;

// 获取 token
export function getToken(): string | null {
  if (isH5) {
    return localStorage.getItem(TOKEN_KEY);
  }
  return uni.getStorageSync(TOKEN_KEY) || null;
}

// 设置 token
export function setToken(token: string): void {
  if (isH5) {
    localStorage.setItem(TOKEN_KEY, token);
  } else {
    uni.setStorageSync(TOKEN_KEY, token);
  }
}

// 移除 token
export function removeToken(): void {
  if (isH5) {
    localStorage.removeItem(TOKEN_KEY);
  } else {
    uni.removeStorageSync(TOKEN_KEY);
  }
}

// 获取用户信息
export function getUserInfo<T>(): T | null {
  const info = isH5 ? localStorage.getItem(USER_INFO_KEY) : uni.getStorageSync(USER_INFO_KEY);
  return info ? JSON.parse(info) : null;
}

// 设置用户信息
export function setUserInfo<T>(info: T): void {
  const jsonStr = JSON.stringify(info);
  if (isH5) {
    localStorage.setItem(USER_INFO_KEY, jsonStr);
  } else {
    uni.setStorageSync(USER_INFO_KEY, jsonStr);
  }
}

// 移除用户信息
export function removeUserInfo(): void {
  if (isH5) {
    localStorage.removeItem(USER_INFO_KEY);
  } else {
    uni.removeStorageSync(USER_INFO_KEY);
  }
}

// 清除所有登录信息
export function clearAuth(): void {
  removeToken();
  removeUserInfo();
}