generateInsights method

List<Insight> generateInsights(
  1. ElectricalNode root,
  2. Map<String, FieldMeasurement> measurements
)

Genera lista de insights priorizados

Implementation

List<Insight> generateInsights(
  ElectricalNode root,
  Map<String, FieldMeasurement> measurements,
) {
  final insights = <Insight>[];

  // Flatten tree once for better performance
  final nodes = TreeUtilities.flattenElectricalNodes(root);

  // 1. Insights de errores teóricos (ValidationEngine)
  insights.addAll(_generateTheoryInsights(nodes));

  // 2. Insights de verificación (mediciones vs cálculos)
  insights.addAll(_generateVerificationInsights(nodes, measurements));

  // 3. Insights de éxito (si todo OK)
  if (insights.where((i) => i.type == InsightType.critical).isEmpty) {
    insights.add(_generateSuccessInsight(root));
  }

  // Ordenar por prioridad
  insights.sort((a, b) => a.priority.value.compareTo(b.priority.value));

  return insights;
}