Архитектурная роль
Модуль events предназначен для управления событиями, которые происходят в системе FunPayCardinal. Он предоставляет базовый класс BaseEvent и различные производные классы для конкретных типов событий, таких как изменения в списке чатов, новые сообщения и изменения статуса заказов. Эти события используются для координации действий между различными компонентами системы, такими как обработчики сообщений и управляющие модули.
Компоненты и логика
BaseEvent
- Назначение: Базовый класс для всех событий, предоставляющий общие атрибуты и методы.
- Аргументы и связи:
- runner_tag (Runner): тег экземпляра Runner.
- event_type (EventTypes): тип события.
- event_time (
int | float | None): время события (опционально). - Взаимодействие: Наследуется классами InitialChatEvent, ChatsListChangedEvent, LastChatMessageChangedEvent, NewMessageEvent, InitialOrderEvent, OrdersListChangedEvent, NewOrderEvent, OrderStatusChangedEvent.
InitialChatEvent
- Назначение: Представляет событие, когда при первом запросе Runner’а обнаружен новый чат.
- Аргументы и связи:
- runner_tag (Runner): тег экземпляра Runner.
- chat_obj (ChatShortcut): объект обнаруженного чата.
- Взаимодействие: Наследуется от BaseEvent.
ChatsListChangedEvent
- Назначение: Представляет событие, когда список чатов и/или содержимое одного или нескольких чатов изменилось.
- Аргументы и связи:
- runner_tag (Runner): тег экземпляра Runner.
- Взаимодействие: Наследуется от BaseEvent.
LastChatMessageChangedEvent
- Назначение: Представляет событие, когда последнее сообщение в чате изменилось.
- Аргументы и связи:
- runner_tag (Runner): тег экземпляра Runner.
- chat_obj (ChatShortcut): объект чата, в котором изменилось последнее сообщение.
- Взаимодействие: Наследуется от BaseEvent.
NewMessageEvent
- Назначение: Представляет событие, когда в истории чата обнаружено новое сообщение.
- Аргументы и связи:
- runner_tag (Runner): тег экземпляра Runner.
- message_obj (Message): объект нового сообщения.
- stack (MessageEventsStack | None ): объект стэка событий новых сообщений (опционально).
- Взаимодействие: Наследуется от BaseEvent.
MessageEventsStack
- Назначение: Представляет стэк событий новых сообщений, необходим для предоставления доступа ко всем событиям новых сообщений от одного пользователя и одного запроса Runner’а.
- Методы:
- add_events: Добавляет события новых сообщений в стэк.
- get_stack: Возвращает стэк событий новых сообщений.
- id: Возвращает ID стэка.
- Аргументы и связи:
- messages (list of NewMessageEvent): список событий новых сообщений.
- Взаимодействие: Используется в NewMessageEvent.
InitialOrderEvent
- Назначение: Представляет событие, когда при первом запросе Runner’а обнаружен новый заказ.
- Аргументы и связи:
- runner_tag (Runner): тег экземпляра Runner.
- order_obj (OrderShortcut): объект обнаруженного заказа.
- Взаимодействие: Наследуется от BaseEvent.
OrdersListChangedEvent
- Назначение: Представляет событие, когда список заказов и/или статус одного/нескольких заказов изменился.
- Аргументы и связи:
- runner_tag (Runner): тег экземпляра Runner.
- purchases (int): количество незавершенных покупок.
- sales (int): количество незавершенных продаж.
- Взаимодействие: Наследуется от BaseEvent.
NewOrderEvent
- Назначение: Представляет событие, когда в списке заказов обнаружен новый заказ.
- Аргументы и связи:
- runner_tag (Runner): тег экземпляра Runner.
- order_obj (OrderShortcut): объект нового заказа.
- Взаимодействие: Наследуется от BaseEvent.
OrderStatusChangedEvent
- Назначение: Представляет событие, когда статус заказа изменился.
- Аргументы и связи:
- runner_tag (Runner): тег экземпляра Runner.
- order_obj (OrderShortcut): объект измененного заказа.
- Взаимодействие: Наследуется от BaseEvent.