generateEnums method

Future<void> generateEnums()

Generate dynamic enums from Firestore data

Implementation

Future<void> generateEnums() async {
  try {
    FinanceSdkLogger.info('Generating dynamic enums...');

    // Get all API definitions
    final apiDefinitions = _firebaseService.getAllApiDefinitions();

    // Generate API keys enum
    // Use original API key as both key and value to avoid collisions
    // This ensures all API keys are displayed, even if they convert to the same enum key
    _apiKeysEnum.clear();
    for (final apiDefinition in apiDefinitions.values) {
      // Use the original API key as the key in the map to preserve all entries
      // The value is also the original API key for backward compatibility
      _apiKeysEnum[apiDefinition.key] = apiDefinition.key;
    }

    // Generate services enum
    _servicesEnum.clear();
    final services = <String>{};
    for (final apiDefinition in apiDefinitions.values) {
      services.add(apiDefinition.service);
    }

    // Use original service name as both key and value
    for (final service in services) {
      _servicesEnum[service] = service;
    }

    FinanceSdkLogger.info('Generated ${_apiKeysEnum.length} API keys and ${_servicesEnum.length} services');
    FinanceSdkLogger.debug('API Keys: ${_apiKeysEnum.keys.toList()}');
  } catch (e) {
    FinanceSdkLogger.error('Failed to generate dynamic enums', e);
    rethrow;
  }
}