import Taro from '@tarojs/taro';

/**
 * 生成UUID字符串
 */
export function generateUUID(): string {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    const r = Math.random() * 16 | 0;
    const v = c === 'x' ? r : (r & 0x3 | 0x8);
    return v.toString(16);
  });
}

/**
 * 生成AI Token
 */
export function generateAiToken(): string {
  try {
    const token = generateUUID();
    Taro.setStorageSync('AI_TOKEN', token);
    console.log('AI Token生成成功:', token);
    return token;
  } catch (error) {
    console.error('生成AI Token失败:', error);
    throw error;
  }
}

/**
 * 获取AI Token，如果不存在则生成一个
 */
export function getAiToken(): string {
  const token = Taro.getStorageSync('AI_TOKEN');
  
  // 如果没有token，生成一个新的
  if (!token) {
    return generateAiToken();
  }
  
  return token;
}

/**
 * 清除AI Token
 */
export function clearAiToken(): void {
  try {
    Taro.removeStorageSync('AI_TOKEN');
    console.log('AI Token已清除');
  } catch (error) {
    console.error('清除AI Token失败:', error);
  }
}

/**
 * 检查AI Token是否存在
 */
export function hasAiToken(): boolean {
  const token = Taro.getStorageSync('AI_TOKEN');
  return !!token;
}
