Files
yovision/Brain/src/yovision_brain/events/models.py
T

30 lines
671 B
Python

"""Explicitly internal event candidate model; not a shared contract."""
from __future__ import annotations
from dataclasses import asdict, dataclass
INTERNAL_EVENT_SCHEMA = "brain.internal.event-candidate/v1"
@dataclass(frozen=True, slots=True)
class InternalEventCandidate:
schema: str
event_id: str
logical_input_id: str
event_type: str
occurred_at_ns: int
rule_id: str
rule_version: str
model_name: str
model_version: str
profile_id: str
frame_width: int
frame_height: int
track_id: str
observation: dict[str, object]
reason: str
def to_dict(self) -> dict[str, object]:
return asdict(self)