Архитектурная роль

Модуль 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.

Граф зависимостей