/**
 * 动态获取 localStorage 中的 vuex key
 * 支持格式: __vuex__数字__local
 * @returns {string|null} 返回匹配的 key，如果没找到返回 null
 */
export function getVuexStorageKey() {
  try {
    // 遍历 localStorage 的所有 key，查找匹配 __vuex__*__local 模式的 key
    for (let i = 0; i < localStorage.length; i++) {
      const key = localStorage.key(i)
      // 使用正则表达式匹配 __vuex__数字__local 格式
      if (key && /^__vuex__\d+__local$/.test(key)) {
        return key
      }
    }
    // 如果没找到，尝试使用默认的 key（向后兼容）
    const defaultKey = '__vuex__local'
    if (localStorage.getItem(defaultKey)) {
      return defaultKey
    }
    return null
  } catch (error) {
    console.error('获取 vuex storage key 失败:', error)
    return null
  }
}

/**
 * 获取 vuex 存储的数据
 * @returns {object|null} 返回 vuex 数据对象，如果没找到返回 null
 */
export function getVuexStorage() {
  try {
    const key = getVuexStorageKey()
    if (!key) {
      console.warn('未找到 vuex storage key')
      return null
    }
    const data = localStorage.getItem(key)
    if (!data) {
      return null
    }
    return JSON.parse(data)
  } catch (error) {
    console.error('获取 vuex storage 数据失败:', error)
    return null
  }
}

/**
 * 获取用户ID
 * @returns {string|null} 返回用户ID，如果没找到返回 null
 */
export function getUserId() {
  try {
    const logedUserStr = localStorage.getItem('logedUser')
    console.log(logedUserStr, 'logedUserStr')
    if (!logedUserStr) {
      console.warn('未找到 logedUser')
      return null
    }
    return logedUserStr
  } catch (error) {
    console.error('获取用户ID失败:', error)
    return null
  }
}
export function getToken() {
  try {
    const vuexData = getVuexStorage()
    if (vuexData && vuexData.authModule && vuexData.authModule.token) {
      return vuexData.authModule.token
    }
    console.warn('未找到token')
    return null
  } catch (error) {
    console.error('获取token失败:', error)
    return null
  }
}
/**
 * 获取用户名（优先使用 userName，如果没有则使用 username）
 * @returns {string|null} 返回用户名，如果没找到返回 null
 */
export function getUserName() {
  try {
    const vuexData = getVuexStorage()
    if (vuexData && vuexData.authModule && vuexData.authModule.userInfo) {
      const userInfo = vuexData.authModule.userInfo
      return userInfo.userName || userInfo.username || null
    }
    console.warn('未找到用户名')
    return null
  } catch (error) {
    console.error('获取用户名失败:', error)
    return null
  }
}

export function geTenantId() {
  try {
    const vuexData = getVuexStorage()
    if (vuexData && vuexData.tenantModule && vuexData.tenantModule.currentOrg) {
      const tenantId = vuexData.tenantModule.currentOrg.id
      return tenantId
    }
    console.warn('未找到租户ID')
    return null
  } catch (error) {
    console.error('获取租户ID失败:', error)
    return null
  }
}

/**
 * 获取 authModule 数据
 * @returns {object|null} 返回 authModule 对象，如果没找到返回 null
 */
export function getAuthModule() {
  try {
    const vuexData = getVuexStorage()
    if (vuexData && vuexData.authModule) {
      return vuexData.authModule
    }
    console.warn('未找到 authModule')
    return null
  } catch (error) {
    console.error('获取 authModule 失败:', error)
    return null
  }
}
