import { Component } from '@angular/core';
import { ModalController } from '@ionic/angular/standalone';
// 引用fmode-ng智能体组件
import { ChatPanelOptions, FmodeChat, FmodeChatMessage, openChatPanelModal } from 'fmode-ng';
import Parse from "parse";
import { CloudObject, CloudQuery, CloudUser } from 'src/lib/ncloud';
@Component({
  selector: 'app-tab2',
  templateUrl: 'tab2.page.html',
  styleUrls: ['tab2.page.scss'],
  standalone: false,
})
export class Tab2Page {
  // 处理图片加载失败
  handleImageError(event: Event) {
    const img = event.target as HTMLImageElement;
    img.src = 'assets/icon/hoshino.jpeg'; // 备用图片
  }

  // 处理按钮点击
  openDetails() {
    console.log('查看资讯按钮被点击');
    // 实际项目中可以跳转页面：
    // this.router.navigate(['/details']);
  }
  openConsult(chatId?:string){
    localStorage.setItem("company","E4KpGvTEto")
    let options:ChatPanelOptions = {
      roleId:"2DXJkRsjXK", // 预设，无需更改
      // chatId:chatId, // 若存在，则恢复会话。若不存在，则开启新会话
      onChatInit:(chat:FmodeChat)=>{
        console.log("onChatInit");
        console.log("Chat类",chat);
        console.log("预设角色",chat.role);
        // 角色名称
        chat.role.set("name","星野荐");
        // 角色称号
        chat.role.set("title","漫画家");
        // 角色描述
        chat.role.set("desc","个人作品画风清新,但隐藏“推荐彩蛋”,星野荐,年龄26岁");
        // 角色标签
        chat.role.set("tags",['跑步', '动感单车']);
        // 角色头像
        chat.role.set("avatar","assets/icon/hoshino.jpeg")
        // 角色提示词
        chat.role.set("prompt",`
# 角色设定
性别：男

年龄：32岁

国籍：日本（活跃于国际漫画平台）

职业：

漫画家（创作小众治愈系作品）

“漫画考古学家”（专注挖掘冷门神作）

线上漫画推荐专栏主理人
发型：微卷的深棕色短发，总有一撮呆毛翘起。

服饰：爱穿宽松的条纹衬衫+工装裤，胸前挂着一副老式放大镜（用来“鉴定漫画细节”）。

标志性道具：

手捧一本封面夸张的漫画，书脊贴满彩色标签。

背包上别满各国漫画角色的徽章。

表情：热情洋溢的笑容，眼神专注时会在镜片后反光。


`);
        // 对话灵感分类
        let promptCates = [
          {
            "img": "assets/icon/leixing.jpeg",
            "name": "类型"
          },
          {
            "img": "assets/icon/fengge.jpeg",
            "name": "风格"
          },
          {
            "img": "assets/icon/zhuti.jpeg",
            "name": "主题"
          }
        ]
        setTimeout(() => {
          chat.role.set("promptCates",promptCates)
        }, 500);
        // 对话灵感列表
        let promptList = [
          {
            cate:"类型",img:"/assets/icon/leixing.jpg",
            messageList:[
            "我喜欢热血战斗类的漫画，比如《龙珠》《火影忍者》，有什么类似的推荐吗？",
            "有没有好看的悬疑推理漫画，剧情烧脑的那种？",
            "最近想看看轻松搞笑的日常漫画，能推荐一些吗？",
            "对科幻机甲类的漫画感兴趣，类似《高达》或者《攻壳机动队》这样的有推荐吗？",
            "有没有黑暗奇幻风格的漫画，比如《剑风传奇》这种？"
          ]
          },
          {
            cate:"风格",img:"/assets/icon/fengge.jpg",
            messageList:[
              "我喜欢画风细腻、人物美型的漫画，比如《CLAMP》的作品，有类似的推荐吗？",
              "有没有画风独特、辨识度高的漫画，比如《JOJO的奇妙冒险》那种？",
              "喜欢复古手绘风格的漫画，类似《浪客行》这样的，能推荐一些吗？",
              "有没有色彩鲜艳、视觉冲击力强的漫画，比如《死神》早期的风格？",
              "偏好写实画风的漫画，类似《寄生兽》这样的，有什么推荐？"
            ]
          },
          {
            cate:"主题",img:"/assets/icon/zhuti.jpg",
            messageList: [
            "有没有主角成长线很精彩的漫画，比如从弱小变强的那种？",
            "想看看关于‘复仇’主题的漫画，剧情要够狠够刺激的！",
            "有没有讲述友情、团队合作的漫画，类似《海贼王》这种？",
            "对‘时间循环’或者‘平行世界’设定的漫画感兴趣，有什么推荐？",
            "有没有探讨人性、社会问题的深刻漫画，类似《死亡笔记》或《怪物》？"
          ]
          },
        ]
        let ChatPrompt = Parse.Object.extend("ChatPrompt");
        setTimeout(() => {
          chat.promptList = promptList.map(item=>{
            let prompt = new ChatPrompt();
            prompt.set(item);
            prompt.img = item.img;
            return prompt;
          })
        }, 500);

        // 功能按钮区域预设
        chat.leftButtons = [
          { // 提示 当角色配置预设提示词时 显示
           title:"话题灵感", // 按钮标题
           showTitle:true, // 是否显示标题文字
           icon:"color-wand-outline", // 标题icon图标
           onClick:()=>{ // 按钮点击事件
               chat.isPromptModalOpen = true
           },
           show:()=>{ // 按钮显示条件
             return chat?.promptList?.length // 存在话题提示词时显示
           }
         },
      ]

      },
      onMessage:(chat:FmodeChat,message:FmodeChatMessage)=>{
        console.log("onMessage",message)
        let content:any = message?.content
        if(typeof content == "string"){
          // 根据阶段标记判断下一步处理过程
          if (content.includes('[导诊完成]')) {
            // 进入问诊环节
            console.log('进入问诊环节');
          } else if (content.includes('[问诊完成]')) {
            // 进入检查环节
            console.log('进入检查环节');
          } else if (content.includes('[检查完成]')) {
            // 进入诊断与处方环节
            console.log('进入诊断与处方环节');
          } else if (content.includes('[处方完成]')) {
            // 结束会话或其他逻辑
            console.log('结束会话');
          }
        }
      },
      onChatSaved:(chat:FmodeChat)=>{
        // chat?.chatSession?.id 本次会话的 chatId
        console.log("onChatSaved",chat,chat?.chatSession,chat?.chatSession?.id)
      }
    }
    openChatPanelModal(this.modalCtrl,options)
  }

  constructor(private modalCtrl:ModalController,) {}


}
