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