processLifecycleEvent method

Future<void> processLifecycleEvent(
  1. ObslyEventBase event
)

Execute rules for lifecycle events with fresh appContext

Implementation

Future<void> processLifecycleEvent(ObslyEventBase event) async {
  if (!_isAvailable || !_isExecutionEnabled) return;

  try {
    // Build fresh appContext for this evaluation
    final currentAppContext = _buildCurrentAppContext();

    // Merge lifecycle context with app context
    final fullContext = {
      ...currentAppContext,
      'event': {
        'type': 'lifecycle',
        'name': event.name,
        'timestamp': event.timestamp.millisecondsSinceEpoch,
      },
      'app': {
        'state': event.data['state'] ?? event.name,
        'data': event.data,
      }
    };

    // Use unified execution method
    await RulesManager.instance.executeRulesForEvent(
      eventType: 'lifecycle',
      context: fullContext,
    );

    ObslyLogger.debug('Lifecycle rules executed: ${event.name}');
  } catch (e) {
    ObslyLogger.error('Error executing lifecycle rules: $e');
  }
}