import { Component, OnInit } from '@angular/core';
import {IonHeader, IonToolbar, IonTitle,IonInput, IonContent,IonButton, IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons';
import { chevronBack,heart } from 'ionicons/icons';
import { Router } from '@angular/router';
import { FmodeChatCompletion,MarkdownPreviewModule } from 'fmode-ng';
import { CommonModule } from '@angular/common'; // 添加 CommonModule
import { FormsModule } from '@angular/forms'; // 添加 FormsModule

@Component({
  selector: 'app-page-companion',
  templateUrl: './page-companion.component.html',
  styleUrls: ['./page-companion.component.scss'],
  standalone: true,
  imports:[IonHeader, CommonModule, FormsModule, IonToolbar, IonTitle, IonContent,IonButton,IonInput, IonIcon,MarkdownPreviewModule]
})
export class PageCompanionComponent  implements OnInit {

  userInput: string = ''; // 用户输入内容
  messages: { role: string, content: string }[] = []; // 消息列表

  

  // 用户输入变化
  promptInput(ev: any) {
    this.userInput = ev.detail.value;
  }

   
    // 方法：实例化completion对象，传入消息数组，并订阅生成的可观察对象。
    isComplete:boolean = false; // 定义完成状态属性，用来标记是否补全完成

  // 发送消息
  sendMessage() {
    if (!this.userInput.trim()) return; // 确保输入不为空
    this.messages.push({ role: 'user', content: this.userInput });
    // console.log("create")
 
     
    // 调用 AI 接口
    let promptTemplate = `
      请你先分析用户的口述，如果是明显需要心理咨询帮助的意思，那么请你作为专业的心理咨询师，根据用户的描述提供情感疏导和建议；如果用户只是简单的日常聊天，比如吐槽、唠嗑，那么请你作为一个朋友的形象，根据的用户的消息提供友好并有情绪价值的回复。
      以下是用户的口述：${this.userInput}
    `;

    let completion = new FmodeChatCompletion([
      { role: 'system', content: '' },
      { role: 'user', content: promptTemplate }
    ]);


    completion.sendCompletion().subscribe((message: any) => {
      
      // console.log(message.content)
      // 赋值消息内容给组件内属性
      // this.messages = message.content
      this.messages.push({ role: 'ai', content: message.content });
      if(message?.complete){ // 判断message为完成状态，则设置isComplete为完成
        this.isComplete = true
        this.userInput = '';
      }
    })}
    
  

  constructor(private router: Router) { 
    addIcons({chevronBack,heart});
  }

  goTab1(){
    this.router.navigate(['tabs/tab1']);
   }

  ngOnInit() {}

}
