initialize static method

Future<RulesController> initialize()

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;
}