# app/runtime/subscribers/ui_subscriber.py

from Copilot.dataAcquisition.Core.BaseSubscriber import BaseSubscriber

from Copilot.SituationLayer.Core.Incident import IncidentRef


class UIIncidentueHandler(BaseSubscriber):

    def __init__(self, socketio):

        super().__init__()

        self.socketio = socketio

    def handle(self, event: IncidentRef):


        self.socketio.emit(
            "incident_happend",
            {
            "notiftype" : "incident",
            "notif_id" : event.id,
            "data" : {
                "incident_id" : event.id,
                "type": event.incident_type,
                "severity" : event.severity,
                "machine_id" : event.machine.id,
                "machine_displayname" : event.machine.display_name
            },
            "timestamp": event.trigger_timestamp.strftime("%Y-%m-%d-%H-%M-%S")
            }

        )