gerarRelatorio method

String gerarRelatorio(
  1. ObterProcuracaoResponse response
)

Gera um relatório textual das procurações

Implementation

String gerarRelatorio(ObterProcuracaoResponse response) {
  final analise = analisarProcuracoes(response);

  if (!response.sucesso) {
    return '❌ Erro: ${response.mensagemPrincipal}';
  }

  if (analise['total'] == 0) {
    return 'ℹ️ Nenhuma procuração encontrada.';
  }

  final buffer = StringBuffer();
  buffer.writeln('📋 📊 RELATÓRIO DE PROCURAÇÕES');
  buffer.writeln('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
  buffer.writeln('📊 Resumo Geral:');
  buffer.writeln('   • Total: ${analise['total']} procurações');
  buffer.writeln('   • Ativas: ${analise['ativas']}');
  buffer.writeln('   • Expirando em breve: ${analise['expiramEmBreve']}');
  buffer.writeln('   • Expiradas: ${analise['expiradas']}');
  buffer.writeln('   • Sistemas únicos: ${analise['totalSistemasUnicos']}');
  buffer.writeln('');

  if (response.dados != null && response.dados!.isNotEmpty) {
    buffer.writeln('📝 Detalhes por Procuração:');

    for (int i = 0; i < response.dados!.length; i++) {
      final proc = response.dados![i];
      final emoji = proc.status == StatusProcuracao.ativa
          ? '✅'
          : proc.status == StatusProcuracao.expiraEmBreve
          ? '⚠️'
          : proc.status == StatusProcuracao.expirada
          ? '❌'
          : '❓';

      buffer.writeln('   $emoji Procuração ${i + 1}:');
      buffer.writeln('      • Status: ${proc.status.value}');
      buffer.writeln('      • Expira em: ${proc.dataExpiracaoFormatada}');
      buffer.writeln('      • Sistemas: ${proc.nrsistemas}');
      buffer.writeln('      • Lista: ${proc.sistemas.join(', ')}');
      buffer.writeln('');
    }

    if (analise['sistemasUnicos'].isNotEmpty) {
      buffer.writeln('🔧 Sistemas Encontrados:');
      for (final sistema in analise['sistemasUnicos']) {
        buffer.writeln('   • $sistema');
      }
    }
  }

  return buffer.toString();
}