ConteudoIndicadorMensagens.fromJson constructor

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

Implementation

factory ConteudoIndicadorMensagens.fromJson(Map<String, dynamic> json) {
  final indicador = json['indicadorMensagensNovas']?.toString() ?? '0';

  // Converter valor numérico para descrição descritiva
  final indicadorMensagensNovas = switch (indicador) {
    '0' => 'Contribuinte não possui mensagens novas',
    '1' => 'Contribuinte possui uma mensagem nova',
    '2' => 'Contribuinte possui mensagens novas',
    _ => indicador,
  };

  final status = switch (indicador) {
    '0' => StatusMensagensNovas.semMensagensNovas,
    '1' => StatusMensagensNovas.umaMensagemNova,
    '2' => StatusMensagensNovas.multiplasMensagensNovas,
    _ => StatusMensagensNovas.semMensagensNovas,
  };

  final descricao = switch (status) {
    StatusMensagensNovas.semMensagensNovas =>
      'Contribuinte não possui mensagens novas',
    StatusMensagensNovas.umaMensagemNova =>
      'Contribuinte possui uma mensagem nova',
    StatusMensagensNovas.multiplasMensagensNovas =>
      'Contribuinte possui mensagens novas',
  };

  return ConteudoIndicadorMensagens(
    indicadorMensagensNovas: indicadorMensagensNovas,
    temMensagensNovas: indicador != '0',
    statusMensagensNovas: status,
    descricaoStatus: descricao,
  );
}