/**
 * Coze API配置
 * 包含API服务的配置和工作流ID映射
 * 目前只支持文本转描述词工作流
 */

import { getCozeApiToken, getWorkflowIds } from './storageUtils';

// Coze API 基础URL
export const COZE_API_BASE_URL = process.env.REACT_APP_COZE_API_BASE_URL || 'https://api.coze.cn';

// 获取Coze API Token，优先使用本地存储，其次使用环境变量
const storedToken = getCozeApiToken();
export const COZE_API_TOKEN = storedToken || process.env.REACT_APP_COZE_API_TOKEN || '';

// 判断是否有有效的API Token
export const hasValidToken = () => {
  return !!COZE_API_TOKEN && COZE_API_TOKEN !== 'your_coze_api_token';
};

// 从本地存储获取自定义的工作流ID
const storedWorkflowIds = getWorkflowIds() || {};

// 工作流ID映射表
// 优先使用本地存储的ID，其次使用环境变量，最后使用默认值
export const WORKFLOW_IDS = {
  textToDescription: storedWorkflowIds.textToDescription || process.env.REACT_APP_COZE_WORKFLOW_TEXT_TO_DESC || 'workflow_id_for_text_to_description',
  // 添加画风列表和画图工作流
  getStyleList: storedWorkflowIds.getStyleList || process.env.REACT_APP_COZE_WORKFLOW_GET_STYLE_LIST || 'workflow_id_for_get_style_list',
  generateImage: storedWorkflowIds.generateImage || process.env.REACT_APP_COZE_WORKFLOW_GENERATE_IMAGE || 'workflow_id_for_generate_image',
};

// 工作流名称到显示名称的映射
export const WORKFLOW_DISPLAY_NAMES = {
  textToDescription: '文本转描述词',
  getStyleList: '获取画风列表',
  generateImage: '生成图像',
};

// 获取所有工作流ID和显示名称的映射
export const getAllWorkflows = () => {
  return Object.entries(WORKFLOW_IDS).map(([key, id]) => ({
    id,
    key,
    name: WORKFLOW_DISPLAY_NAMES[key] || key,
  }));
};

// 默认配置，用于初始化CozeService
export const DEFAULT_CONFIG = {
  token: COZE_API_TOKEN,
  baseURL: COZE_API_BASE_URL,
};

// 参数预设
export const PARAMETER_PRESETS = {
  textToDescription: {
    style: 'detailed',   // 详细描述风格
    language: 'zh',      // 输出语言：中文
    maxLength: 500,      // 最大长度
  },
  
  // 图像生成参数预设
  generateImage: {
    width: 1024,         // 图像宽度
    height: 1024,        // 图像高度
    num_images: 1,       // 生成图像数量
    language: 'zh',      // 提示词语言：中文
    negative_prompt: '',  // 负面提示词
  },
}; 