initialize static method
Initialize the rules controller
Implementation
static Future<RulesController> initialize() async {
// Return existing instance if already fully initialized
if (_instance != null && _instance!._isInitialized) {
ObslyLogger.debug(
'Rules Controller already initialized - returning existing instance');
return _instance!;
}
// Get or create instance
final controller = _instance ?? RulesController._();
// Initialize the engine if not already done
if (!controller._isInitialized) {
controller._engine = await RulesEngine.create();
// Initialize persistence
await RulesContextPersistence.instance.initialize();
// Load persisted session variables
controller._appContext =
await RulesContextPersistence.instance.loadRulesSessionVariables();
controller._isInitialized = true;
_instance = controller;
if (controller._engine.isActive) {
ObslyLogger.debug(
'Rules Controller initialized with active engine and persistence');
} else {
ObslyLogger.debug(
'Rules Controller initialized with no-op engine (obsly_flutter_rules not available)');
}
}
return controller;
}