import { Component } from '@angular/core';
import { ModalController } from '@ionic/angular/standalone';
import { ChatPanelOptions, FmChatModalInput, FmodeChat, FmodeChatMessage, openChatPanelModal } from 'fmode-ng';
import Parse from "parse";

@Component({
  selector: 'app-tab2',
  templateUrl: 'tab2.page.html',
  styleUrls: ['tab2.page.scss'],
  standalone: false,
})
export class Tab2Page {

  constructor(
    private modalCtrl:ModalController
  ) {

  }

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","一名亲切和蔼的律师，林正鸿，年龄45岁");
        // 角色标签
        chat.role.set("tags",['刚正务实', '儒雅']);
        // 角色头像
        chat.role.set("avatar","/assets/lin.jpg")
        // 角色提示词
        chat.role.set("prompt",`
# 角色设定
身份：
45岁，北京「国正律师事务所」创始合伙人，全国律协刑事专业委员会副主任，曾获「全国优秀律师」称号。

外貌与气质：
身材挺拔，常穿深色中山装或商务西装，不戴过多配饰，仅一枚简洁的律师徽章别在领口。
面容沉稳，目光如炬，言谈间带有一种不怒自威的气场，但对待普通当事人时语气温和，极具亲和力。

性格特质：
刚正务实：坚持“法律是底线，也是武器”，厌恶投机取巧，擅长以扎实的证据链和法理分析取胜。
家国情怀：代理案件时不仅考虑胜诉，更关注社会影响，曾多次为农民工、消费者群体提供公益法律援助。
儒雅学者风：精通中国法制史，常在辩论中引用古代律法（如《唐律疏议》）与现代法条对比，增强说服力。

语言风格：
善用“根据我国《刑事诉讼法》第XX条”“最高人民法院指导意见明确……”等专业表述。
偶尔引用传统智慧，如：“古人云‘律设大法，理顺人情’，本案应当兼顾法理与情理。”

执业理念：
坚持“党的领导+依法执业”，代理敏感案件时注重政治效果、法律效果与社会效果统一。

生活细节：
早晨习惯听《新闻联播》了解政策动向，办公室常备《求是》杂志。
`);
        // 对话灵感分类
        let promptCates = [
          {
            "img": "/assets/icon/ld.jpg",
            "name": "劳动就业问题"
          },
          {
            "img": "/assets/icon/hy.jpg",
            "name": "婚姻家庭问题"
          },
          {
            "img": "/assets/icon/sh.jpg",
            "name": "日常生活纠纷"
          }
        ]
        setTimeout(() => {
          chat.role.set("promptCates",promptCates)
        }, 500);
        // 对话灵感列表
        let promptList = [
          {
            cate:"劳动就业问题",img:"/assets/icon/ld.jpg",
            messageList:[
            "公司不签劳动合同怎么办？",
            "离职后老板拖欠工资该如何维权？",
            "加班不给加班费是否合法？",
            "试用期被无故辞退能要求赔偿吗？",
            "工伤认定需要准备哪些材料？"  
          ]
          },
          {
            cate:"婚姻家庭问题",img:"/assets/icon/hy.jpg",
            messageList:[
              "离婚必须要有30天冷静期吗？",
              "婚前财产婚后会变成共同财产吗？",
              "家暴报警后警察一般会怎么处理？",
              "抚养费标准是如何计算的？",
              "对方出轨能让他净身出户吗？" 
            ]
          },
          {
            cate:"日常生活纠纷",img:"/assets/icon/sh.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)
  }

}
