analisarProcuracoes method

Map<String, dynamic> analisarProcuracoes(
  1. ObterProcuracaoResponse response
)

Analisa todas as procurações retornadas e gera estatísticas

Implementation

Map<String, dynamic> analisarProcuracoes(ObterProcuracaoResponse response) {
  if (!response.sucesso || response.dados == null) {
    return {
      'total': 0,
      'ativas': 0,
      'expiramEmBreve': 0,
      'expiradas': 0,
      'sistemasUnicos': <String>[],
      'analiseStatus': 'sem_dados',
    };
  }

  final procuracoes = response.dados!;
  final sistemasUnicos = <String>{};

  int ativas = 0;
  int expiramEmBreve = 0;
  int expiradas = 0;

  for (final proc in procuracoes) {
    sistemasUnicos.addAll(proc.sistemas);

    switch (proc.status) {
      case StatusProcuracao.ativa:
        ativas++;
        break;
      case StatusProcuracao.expiraEmBreve:
        expiramEmBreve++;
        break;
      case StatusProcuracao.expirada:
        expiradas++;
        break;
      default:
        break;
    }
  }

  return {
    'total': procuracoes.length,
    'ativas': ativas,
    'expiramEmBreve': expiramEmBreve,
    'expiradas': expiradas,
    'sistemasUnicos': sistemasUnicos.toList(),
    'totalSistemasUnicos': sistemasUnicos.length,
    'analiseStatus': procuracoes.isEmpty
        ? 'nenhuma_procuracao'
        : 'com_procuracoes',
  };
}