query_contract.py

Code Hygiene Score: 99

Issues 1

Zeile Typ Beschreibung
21 magic_number Magic Number gefunden: 100

Dependencies 3

Klassen 3

Code

"""Query Contracts - Request und Response Datenstrukturen."""
from dataclasses import dataclass
from enum import Enum


class QueryStatus(Enum):
    """Status einer Query-Ausführung."""

    SUCCESS = "success"
    ERROR = "error"
    DENIED = "denied"


@dataclass(frozen=True)
class QueryRequest:
    """Immutable Query Request - SRP: Nur Query-Daten."""

    query: str
    params: tuple | None = None
    database: str = "ki_protokoll"
    max_rows: int = 100


@dataclass
class QueryResponse:
    """Structured Response - SRP: Nur Response-Daten."""

    status: QueryStatus
    data: list[dict] | None = None
    row_count: int = 0
    error: str | None = None
    execution_ms: float = 0.0

    def to_dict(self) -> dict:
        """Konvertiert Response zu Dictionary für MCP."""
        return {
            "status": self.status.value,
            "data": self.data,
            "row_count": self.row_count,
            "error": self.error,
            "execution_ms": self.execution_ms,
        }
← Übersicht Graph