import json
from models.chats import ChatMessage, SenderTypeEnum
from models.incident_model import IncidentAnalysisModel, IncidentModel
from Copilot.LLMLayer.Prompts.messages_prompts import INCIDENT_ANALYZS_PROMPT, INCIDENT_CONTEXT_PROMPT

def gen_incident_analyze_message( incident_analyze_id):
    incident_analyze = IncidentAnalysisModel.query.filter_by(id=incident_analyze_id).first()

    analyze_json = incident_analyze.analysis_json
    message = INCIDENT_ANALYZS_PROMPT.format(analysis_json=json.dumps(analyze_json, ensure_ascii = False),
                                   )
    return ChatMessage(
            user_id=1, #this id is fake beacuse we dont need save this message in db
            session_id=1, #this id is fake beacuse we dont need save this message in db
            sender_type=SenderTypeEnum.BOT,
            message=message ,
        )


def gen_incident_message( incident_analyze_id ):
    incident_analyze:IncidentAnalysisModel = IncidentAnalysisModel.query.filter_by(id=incident_analyze_id).first()
    incident_id = incident_analyze.incident_id
    incident:IncidentModel = IncidentModel.query.filter_by(id=incident_id).first()

    incident_json = incident.payload
    incident_json.pop("parameter_histories", None)
    message = INCIDENT_CONTEXT_PROMPT.format(incident_json=json.dumps(incident_json, ensure_ascii = False),
                                   )
    return ChatMessage(
            user_id=1, #this id is fake beacuse we dont need save this message in db
            session_id=1, #this id is fake beacuse we dont need save this message in db
            sender_type=SenderTypeEnum.USER,
            message=message ,
        )