ConsultarApuracaoResponse.fromJson constructor

ConsultarApuracaoResponse.fromJson(
  1. Map<String, dynamic> json
)

Cria uma instância a partir de um mapa JSON.

Implementation

factory ConsultarApuracaoResponse.fromJson(Map<String, dynamic> json) {
  final baseResponse = MitResponse.fromJson(json);

  ApuracaoDetalhada? apuracao;
  List<Pendencia>? pendencias;

  if (json['dados'] != null) {
    final dadosStr = json['dados'].toString();
    try {
      final dados = jsonDecode(dadosStr) as Map<String, dynamic>;

      if (dados['apuracao'] != null) {
        apuracao = ApuracaoDetalhada.fromJson(dados['apuracao']);
      }

      if (dados['pendencias'] != null) {
        pendencias = (dados['pendencias'] as List)
            .map((item) => Pendencia.fromJson(item))
            .toList();
      }
    } catch (e) {
      // Se não conseguir decodificar, mantém null
    }
  }

  return ConsultarApuracaoResponse(
    status: baseResponse.status,
    responseId: baseResponse.responseId,
    responseDateTime: baseResponse.responseDateTime,
    mensagens: baseResponse.mensagens,
    apuracao: apuracao,
    pendencias: pendencias,
  );
}