import type { Component } from 'vue'
import {
  Anthropic,
  Azure,
  AzureColor,
  Baichuan,
  BaichuanColor,
  Bailian,
  BailianColor,
  Bedrock,
  BedrockColor,
  Claude,
  ClaudeColor,
  Cohere,
  CohereColor,
  Deepseek,
  DeepseekColor,
  Doubao,
  DoubaoColor,
  Fireworks,
  FireworksColor,
  Gemini,
  GeminiColor,
  Google,
  GoogleBrandColor,
  GoogleColor,
  Groq,
  Huggingface,
  HuggingfaceColor,
  Hunyuan,
  HunyuanColor,
  Kimi,
  KimiColor,
  Lmstudio,
  Meta,
  MetaColor,
  Minimax,
  MinimaxColor,
  Mistral,
  MistralColor,
  Moonshot,
  Newapi,
  NewapiColor,
  Nvidia,
  NvidiaColor,
  Ollama,
  Openai,
  Openrouter,
  Qwen,
  QwenColor,
  Siliconcloud,
  SiliconcloudColor,
  Spark,
  SparkColor,
  Stepfun,
  StepfunColor,
  Together,
  TogetherColor,
  Vertexai,
  VertexaiColor,
  Volcengine,
  VolcengineColor,
  Xai,
  Yi,
  YiColor,
  Zhipu,
  ZhipuColor,
} from '@memohai/icon'

/**
 * Maps preset icon names (stored in DB) to @memohai/icon Vue components.
 * The key is the SVG filename without extension (e.g. 'openai', 'deepseek-color').
 */
export const iconMap: Record<string, Component> = {
  'openai': Openai,
  'anthropic': Anthropic,
  'google': Google,
  'google-color': GoogleColor,
  'google-brand-color': GoogleBrandColor,
  'deepseek': Deepseek,
  'deepseek-color': DeepseekColor,
  'groq': Groq,
  'huggingface': Huggingface,
  'huggingface-color': HuggingfaceColor,
  'lmstudio': Lmstudio,
  'minimax': Minimax,
  'minimax-color': MinimaxColor,
  'mistral': Mistral,
  'mistral-color': MistralColor,
  'moonshot': Moonshot,
  'ollama': Ollama,
  'openrouter': Openrouter,
  'qwen': Qwen,
  'qwen-color': QwenColor,
  'xai': Xai,
  'claude': Claude,
  'claude-color': ClaudeColor,
  'gemini': Gemini,
  'gemini-color': GeminiColor,
  'meta': Meta,
  'meta-color': MetaColor,
  'cohere': Cohere,
  'cohere-color': CohereColor,
  'azure': Azure,
  'azure-color': AzureColor,
  'nvidia': Nvidia,
  'nvidia-color': NvidiaColor,
  'fireworks': Fireworks,
  'fireworks-color': FireworksColor,
  'together': Together,
  'together-color': TogetherColor,
  'bedrock': Bedrock,
  'bedrock-color': BedrockColor,
  'vertexai': Vertexai,
  'vertexai-color': VertexaiColor,
  'baichuan': Baichuan,
  'baichuan-color': BaichuanColor,
  'zhipu': Zhipu,
  'zhipu-color': ZhipuColor,
  'yi': Yi,
  'yi-color': YiColor,
  'stepfun': Stepfun,
  'stepfun-color': StepfunColor,
  'kimi': Kimi,
  'kimi-color': KimiColor,
  'doubao': Doubao,
  'doubao-color': DoubaoColor,
  'spark': Spark,
  'spark-color': SparkColor,
  'hunyuan': Hunyuan,
  'hunyuan-color': HunyuanColor,
  'bailian': Bailian,
  'bailian-color': BailianColor,
  'siliconcloud': Siliconcloud,
  'siliconcloud-color': SiliconcloudColor,
  'volcengine': Volcengine,
  'volcengine-color': VolcengineColor,
  'newapi': Newapi,
  'newapi-color': NewapiColor,
}
