# -*- coding: utf-8 -*- """ Datenklassen fuer Activity-Log-Eintraege. Jede Klasse entspricht einer JSON-Datei in data/activity/. """ from __future__ import annotations from dataclasses import dataclass, field from typing import Any @dataclass class SatelliteConnectionEntry: """Eintrag fuer eine Satellite-Verbindung.""" satellite_id: str = "" alias: str = "" room: str = "" connected_at: str = "" disconnected_at: str = "" ip_address: str = "" @dataclass class ConfigConnectionEntry: """Eintrag fuer eine Config-Tool-Verbindung.""" peer_address: str = "" connected_at: str = "" disconnected_at: str = "" @dataclass class TrainingRunEntry: """Eintrag fuer einen Trainings-Lauf.""" trainer_id: str = "" model_name: str = "" started_at: str = "" completed_at: str = "" duration_seconds: float = 0.0 success: bool = False error: str = "" @dataclass class IntentLogEntry: """Eintrag fuer einen verarbeiteten Intent.""" timestamp: str = "" intent: str = "" plugin: str = "" satellite_id: str = "" room_id: str = "" original_text: str = "" success: bool = True @dataclass class ErrorLogEntry: """Eintrag fuer einen Fehler.""" timestamp: str = "" source: str = "" message: str = "" satellite_id: str = "" @dataclass class ConversationEntry: """Eintrag fuer eine Conversation-Session.""" session_id: str = "" satellite_id: str = "" room_id: str = "" wakeword_type: str = "" started_at: str = "" completed_at: str = "" turns: list[dict[str, Any]] = field(default_factory=list)