/**
 * 认证相关工具函数
 */

const TOKEN_KEY = 'admin_token';
const USER_INFO_KEY = 'admin_user_info';
const USER_TYPE_KEY = 'admin_user_type';
const REPLENISHER_INFO_KEY = 'replenisher_info';

/**
 * 获取Token
 */
export function getToken(): string {
  return uni.getStorageSync(TOKEN_KEY) || '';
}

/**
 * 设置Token
 */
export function setToken(token: string): void {
  uni.setStorageSync(TOKEN_KEY, token);
}

/**
 * 移除Token
 */
export function removeToken(): void {
  uni.removeStorageSync(TOKEN_KEY);
}

/**
 * 获取用户信息
 */
export function getUserInfo(): any {
  const info = uni.getStorageSync(USER_INFO_KEY);
  return info ? JSON.parse(info) : null;
}

/**
 * 设置用户信息
 */
export function setUserInfo(userInfo: any): void {
  uni.setStorageSync(USER_INFO_KEY, JSON.stringify(userInfo));
}

/**
 * 移除用户信息
 */
export function removeUserInfo(): void {
  uni.removeStorageSync(USER_INFO_KEY);
}

/**
 * 获取用户类型
 */
export function getUserType(): string {
  return uni.getStorageSync(USER_TYPE_KEY) || 'admin';
}

/**
 * 设置用户类型
 */
export function setUserType(type: string): void {
  uni.setStorageSync(USER_TYPE_KEY, type);
}

/**
 * 移除用户类型
 */
export function removeUserType(): void {
  uni.removeStorageSync(USER_TYPE_KEY);
}

/**
 * 获取补货员信息
 */
export function getReplenisherInfo(): any {
  const info = uni.getStorageSync(REPLENISHER_INFO_KEY);
  return info ? JSON.parse(info) : null;
}

/**
 * 设置补货员信息
 */
export function setReplenisherInfo(info: any): void {
  uni.setStorageSync(REPLENISHER_INFO_KEY, JSON.stringify(info));
}

/**
 * 移除补货员信息
 */
export function removeReplenisherInfo(): void {
  uni.removeStorageSync(REPLENISHER_INFO_KEY);
}

/**
 * 是否为补货员
 */
export function isReplenisher(): boolean {
  return getUserType() === 'replenisher';
}

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

/**
 * 检查是否已登录
 */
export function isLoggedIn(): boolean {
  return !!getToken();
}

/**
 * 退出登录
 */
export function logout(): void {
  clearAuth();
  uni.reLaunch({
    url: '/pages/login/login'
  });
}

/**
 * 获取登录用户首页路径
 */
export function getHomePath(): string {
  if (isReplenisher()) {
    return '/pages/replenish/home';
  }
  return '/pages/index/index';
}
