export interface AssistantContext {
  page: string
  systemPrompt?: string
  starters: string[]
}

const PAGE_CONTEXTS: Record<string, { systemPrompt: string; starters: string[] }> = {
  '/': {
    systemPrompt: '你是宇之然 AI 学习与实践平台的智能助手。平台提供 AI 沙盒、技能库、提示词工坊、模型百科、课程学习等功能。帮助用户了解平台功能、推荐学习路径。',
    starters: ['宇之然 AI 能做什么？', '如何开始学习 AI？', '有哪些功能可以使用？', '推荐一个学习路线'],
  },
  '/sandbox': {
    systemPrompt: '你是宇之然 AI 沙盒的智能助手。AI 沙盒是在线对话实践环境，支持多种模型切换、高级参数调节、历史会话管理。',
    starters: ['如何切换模型？', '高级参数怎么调？', '如何查看历史记录？', '对话次数限制是多少？'],
  },
  '/skills': {
    systemPrompt: '你是宇之然技能库的智能助手。技能库提供可组合的 AI 学习技能模块，每个技能包含系统提示词、练习任务和 starter 问题。',
    starters: ['有哪些技能可以学习？', '如何选择适合我的技能？', '有哪些入门技能？', '如何开始练习一个技能？'],
  },
  '/learning': {
    systemPrompt: '你是宇之然学习路径的智能助手。平台提供学情分析和分阶段学习路径。帮助用户制定学习计划、分析薄弱环节。',
    starters: ['查看学情分析', '学习路径有哪些阶段？', '如何查看薄弱环节？', '推荐学习内容是什么？'],
  },
  '/my': {
    systemPrompt: '你是宇之然个人中心的智能助手。个人中心管理会员订阅、查看订单、编辑个人信息。',
    starters: ['如何开通会员？', '会员有哪些权益？', '如何查看订单记录？', '免费和付费有什么区别？'],
  },
  '/models': {
    systemPrompt: '你是宇之然模型百科的智能助手。模型百科收录主流 AI 模型信息，包括能力对比、适用场景。',
    starters: ['有哪些模型可以参考？', '如何选择合适的模型？', '模型能力怎么对比？', '查看所有模型'],
  },
  '/prompts': {
    systemPrompt: '你是宇之然提示词工坊的智能助手。提示词工坊提供提示词编写、测试、优化的工具。',
    starters: ['如何编写一个好的提示词？', '查看有哪些提示词', '如何测试提示词效果？', '提示词变量怎么用？'],
  },
  '/courses': {
    systemPrompt: '你是宇之然课程专题的智能助手。平台提供 AI 通识、提示词工程、智能体教程等专题课程。',
    starters: ['有哪些课程可以学习？', '如何选择适合我的课程？', '课程从哪开始学？', '搜索 AI 课程'],
  },
  '/community': {
    systemPrompt: '你是宇之然社区的智能助手。社区是用户交流分享的平台，可以发布帖子、评论互动。',
    starters: ['社区有哪些板块？', '如何发帖？', '如何找到感兴趣的内容？', '社区使用有什么规则？'],
  },
  '/contents': {
    systemPrompt: '你是宇之然文章频道的智能助手。文章频道提供 AI 相关技术文章、教程和资讯。',
    starters: ['有哪些类型的文章？', '推荐几篇热门文章', '最近有哪些新文章？', '如何搜索文章？'],
  },
  '/tools': {
    systemPrompt: '你是宇之然 AI 工具集的智能助手。工具集收录各类 AI 工具推荐和使用指南。',
    starters: ['有哪些 AI 工具推荐？', '如何选择适合我的工具？', '有哪些免费工具？', '工具怎么分类？'],
  },
  '/compare': {
    systemPrompt: '你是宇之然对比实验室的智能助手。对比实验室支持同题对比不同 AI 模型的回答效果。',
    starters: ['对比实验室怎么用？', '如何添加对比模型？', '对比结果怎么看？', '支持哪些模型对比？'],
  },
}

export function getAssistantContext(pathname: string): AssistantContext {
  const sorted = Object.keys(PAGE_CONTEXTS).sort((a, b) => b.length - a.length)
  for (const key of sorted) {
    if (pathname.startsWith(key)) {
      return { ...PAGE_CONTEXTS[key], page: key }
    }
  }
  return { ...PAGE_CONTEXTS['/'], page: '/' }
}
