30 lines
671 B
Python
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)
|