"""Compatibility facade for events.Subscriptions are removed by design. The app uses DB polling (see Task table)for coordination between components."""fromdataclassesimportdataclass,fieldfromdatetimeimportdatetimefromenumimportEnumfromtypingimportAny,Dict,Optionalfrom.loggingimportget_loggerlogger=get_logger(__name__)
[docs]classEventType(Enum):"""Event types used for high-level coordination."""TASK_CREATED="task_created"TASK_COMPLETED="task_completed"TASK_FAILED="task_failed"MESSAGE_RECEIVED="message_received"RESPONSE_READY="response_ready"
[docs]@dataclassclassEvent:"""Simple event record used by the compatibility facade. :ivar event_type: Category of the event. :ivar data: Optional payload with event-specific fields. :ivar created_at: Creation timestamp. """event_type:EventTypedata:Optional[Dict[str,Any]]=Nonecreated_at:datetime=field(default_factory=datetime.now)