/**
 * AIA - AI Intelligent Assistant 模块入口
 * 
 * 路由管理：
 * - /ai-qa -> Hub: 智能体大厅（12个模块展示）
 * - /ai-qa/chat -> Chat: 沉浸式对话工作台（原12个智能体）
 * - /ai-qa/protocol-agent/:conversationId? -> Protocol Agent（全流程方案制定）
 */

import React, { useState } from 'react';
import { Routes, Route, useNavigate, useLocation } from 'react-router-dom';
import { AgentHub } from './components/AgentHub';
import { ChatWorkspace } from './components/ChatWorkspace';
import { ProtocolAgentPage } from './protocol-agent';
import type { AgentConfig } from './types';

const AIAModule: React.FC = () => {
  return (
    <Routes>
      {/* 智能体大厅 */}
      <Route index element={<AIAHub />} />
      
      {/* Protocol Agent（全流程研究方案制定） */}
      <Route path="protocol-agent/:conversationId?" element={<ProtocolAgentPage />} />
      
      {/* 传统智能体对话（向后兼容） */}
      <Route path="chat" element={<AIAChat />} />
    </Routes>
  );
};

/**
 * Hub 页面
 */
const AIAHub: React.FC = () => {
  const navigate = useNavigate();

  const handleAgentSelect = (agent: AgentConfig & { initialQuery?: string }) => {
    console.log('[AIAHub] Agent selected:', agent.id, 'isProtocolAgent:', agent.isProtocolAgent);
    
    if (agent.isProtocolAgent) {
      // Protocol Agent：跳转专属页面
      console.log('[AIAHub] Navigating to /ai-qa/protocol-agent');
      navigate('/ai-qa/protocol-agent');
    } else {
      // 传统智能体：跳转对话页面
      console.log('[AIAHub] Navigating to /ai-qa/chat');
      navigate('/ai-qa/chat', { state: { agent, initialQuery: agent.initialQuery } });
    }
  };

  return <AgentHub onAgentSelect={handleAgentSelect} />;
};

/**
 * 传统智能体对话页面
 */
const AIAChat: React.FC = () => {
  const navigate = useNavigate();
  const location = useLocation();
  const state = location.state as { agent: AgentConfig; initialQuery?: string } | null;

  const handleBack = () => {
    navigate('/ai-qa');
  };

  if (!state?.agent) {
    navigate('/ai-qa');
    return null;
  }

  return (
    <ChatWorkspace
      agent={state.agent}
      initialQuery={state.initialQuery}
      onBack={handleBack}
    />
  );
};

export default AIAModule;
