onRuleExecutionStarted method
Called when a rule is about to be executed
Implementation
@override
void onRuleExecutionStarted(String ruleKey, Map<String, dynamic> context) {
if (!_isCapturing) return;
final eventId = _generateEventId(context);
final eventType = _extractEventType(context);
final now = DateTime.now();
// Buscar o crear evento agrupado
RulesEventExecution eventExecution;
if (_activeEvents.containsKey(eventId)) {
eventExecution = _activeEvents[eventId]!;
} else {
eventExecution = RulesEventExecution(
eventId: eventId,
timestamp: now,
eventType: eventType,
eventDescription: _generateEventDescription(context, eventType),
eventContext: Map<String, dynamic>.from(context),
ruleExecutions: [],
startTime: now,
);
_activeEvents[eventId] = eventExecution;
}
// Agregar regla iniciada al evento
final ruleExecution = RuleExecution(
ruleKey: ruleKey,
ruleName: context['ruleName']?.toString() ?? ruleKey,
status: RulesExecutionStatus.started,
startTime: now,
);
eventExecution.addRuleExecution(ruleExecution);
_eventExecutionStreamController.add(eventExecution);
ObslyLogger.debug(
'🎬 Rules Monitor: Rule execution started - $ruleKey for event $eventId');
}