processRawData method

List<Map<String, dynamic>> processRawData(
  1. dynamic rawData
)

Método principal para mapear e extrair dados de forma segura

Implementation

List<Map<String, dynamic>> processRawData(dynamic rawData) {
  List<Map<String, dynamic>> normalizedData = normalizeRawData(rawData);
  List<Map<String, dynamic>> processedData = [];

  for (var item in normalizedData) {
    Map<String, dynamic> mappedData = {};

    fieldMappings.forEach((expectedField, actualField) {
      if (item.containsKey(actualField)) {
        dynamic value = item[actualField];

        // Convertendo valores numéricos que vêm como string
        if (value is String && isNumeric(value)) {
          value = double.parse(value);
        }

        // Convertendo listas de números
        if (value is List) {
          value = value.map((e) => toDouble(e)).toList();
        }

        mappedData[expectedField] = value;
      }
    });

    processedData.add(mappedData);
  }

  return processedData;
}