/**
 * AI Token 使用示例
 * 
 * 这个文件展示了如何在不同场景下使用AI Token功能
 */

import { getAiToken, generateAiToken, clearAiToken, hasAiToken } from './aiToken';

/**
 * 示例1: 基本使用 - 获取AI Token
 */
export function basicUsageExample() {
  // 获取AI Token，如果不存在会自动生成
  const token = getAiToken();
  console.log('当前AI Token:', token);
  
  return token;
}

/**
 * 示例2: 检查Token是否存在
 */
export function checkTokenExample() {
  if (hasAiToken()) {
    console.log('AI Token已存在');
    return getAiToken();
  } else {
    console.log('AI Token不存在，正在生成...');
    return generateAiToken();
  }
}

/**
 * 示例3: 重置Token
 */
export function resetTokenExample() {
  console.log('清除旧Token...');
  clearAiToken();
  
  console.log('生成新Token...');
  const newToken = generateAiToken();
  
  console.log('新Token:', newToken);
  return newToken;
}

/**
 * 示例4: 在API调用中使用Token
 */
export function apiCallExample() {
  const token = getAiToken();
  
  // 模拟API调用
  const apiData = {
    query: '你好',
    user: 'user123',
    responseMode: 'streaming',
    aiToken: token  // 包含AI Token
  };
  
  console.log('API调用数据:', apiData);
  return apiData;
}

/**
 * 示例5: 应用初始化时的Token检查
 */
export function appInitExample() {
  console.log('应用初始化 - 检查AI Token...');
  
  // 确保Token存在
  const token = getAiToken();
  
  console.log('AI Token准备就绪:', token);
  
  // 可以在这里进行其他初始化操作
  return {
    success: true,
    token: token,
    message: 'AI Token初始化完成'
  };
}

/**
 * 示例6: 错误处理
 */
export function errorHandlingExample() {
  try {
    const token = getAiToken();
    
    if (!token) {
      throw new Error('无法生成AI Token');
    }
    
    console.log('Token获取成功:', token);
    return { success: true, token };
    
  } catch (error) {
    console.error('Token获取失败:', error);
    return { success: false, error: error.message };
  }
}

/**
 * 示例7: Token格式验证
 */
export function validateTokenExample() {
  const token = getAiToken();
  
  // UUID格式验证正则表达式
  const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
  
  const isValid = uuidRegex.test(token);
  
  console.log('Token:', token);
  console.log('格式是否有效:', isValid);
  
  return {
    token,
    isValid,
    format: isValid ? 'UUID v4' : '无效格式'
  };
}

// 导出所有示例函数
export default {
  basicUsageExample,
  checkTokenExample,
  resetTokenExample,
  apiCallExample,
  appInitExample,
  errorHandlingExample,
  validateTokenExample
};
