import { Component, ViewChild, ElementRef } from '@angular/core';  /* 新增ViewChild */
import { IonicModule } from '@ionic/angular';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';

@Component({
  selector: 'app-ai-agent',
  templateUrl: './ai-agent.page.html',
  styleUrls: ['./ai-agent.page.scss'],
  standalone: true,
  imports: [IonicModule, CommonModule, FormsModule]
})
export class AiAgentPage {
  userInput: string = '';
  conversation: { role: 'user' | 'assistant'; content: string; time: Date }[] = [];  /* 新增time字段 */
  @ViewChild('conversationContainer') conversationContainer!: ElementRef;  /* 获取消息容器引用 */

  async sendMessage() {
    if (!this.userInput.trim()) return;

    // 添加用户消息（包含时间戳）
    const currentTime = new Date();
    this.conversation.push({ 
      role: 'user', 
      content: this.userInput, 
      time: currentTime 
    });
    this.userInput = '';
    this.scrollToBottom();  /* 滚动到最新消息 */

    // 调用大模型API（示例，需替换为实际接口）
    try {
      // 请替换为正确的 DeepSeek API 地址和模型名称
      const response = await fetch('https://api.deepseek.com/chat/completions', {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          // 修改授权头部格式，添加 Bearer 前缀
          'Authorization': `Bearer sk-433e23f9bfcc4d6989987a177e33dfad`
        },
        body: JSON.stringify({
          // 请替换为 DeepSeek 支持的模型名称
          model: 'deepseek-chat', 
          messages: this.conversation.map(msg => ({
            role: msg.role,
            content: msg.content
          }))
        })
      });

      // 检查响应状态
      if (!response.ok) {
        const errorText = await response.text();
        throw new Error(`API 请求失败，状态码: ${response.status}, 错误信息: ${errorText}`);
      }

      const data = await response.json();
      if (data.choices?.[0]?.message) {
        // 添加当前时间戳
        this.conversation.push({
          role: 'assistant',
          content: data.choices[0].message.content,
          time: new Date()
        });
      }
    } catch (error) {
      console.error('大模型请求失败:', error);
      // 添加当前时间戳
      this.conversation.push({
        role: 'assistant',
        content: '抱歉，当前无法为您提供服务。',
        time: new Date()
      });
    }
  }

  // 自动滚动到聊天底部
  private scrollToBottom(): void {
    setTimeout(() => {
      const container = this.conversationContainer.nativeElement;
      container.scrollTop = container.scrollHeight;
    }, 100);  /* 延迟确保DOM更新完成 */
  }
}