MensagemCaixaPostal.fromJson constructor
MensagemCaixaPostal.fromJson( - Map<String, dynamic> json
)
Implementation
factory MensagemCaixaPostal.fromJson(Map<String, dynamic> json) {
// Processar assuntoModelo substituindo ++VARIAVEL++ por valorParametroAssunto
final assuntoModeloOriginal = json['assuntoModelo']?.toString() ?? '';
final valorParametroAssunto =
json['valorParametroAssunto']?.toString() ?? '';
final assuntoModeloProcessado = valorParametroAssunto.isEmpty
? assuntoModeloOriginal
: assuntoModeloOriginal.replaceAll(
'++VARIAVEL++',
valorParametroAssunto,
);
// Converter campos numéricos para valores descritivos
final indicadorLeituraStr = json['indicadorLeitura']?.toString() ?? '';
final indicadorLeitura = switch (indicadorLeituraStr) {
'0' => 'Não lida',
'1' => 'Lida',
'2' => 'Não se aplica',
_ => indicadorLeituraStr,
};
final indicadorFavoritoStr = json['indicadorFavorito']?.toString() ?? '';
final indicadorFavorito = switch (indicadorFavoritoStr) {
'0' => 'Não lida',
'1' => 'Lida',
_ => indicadorFavoritoStr,
};
final origemModeloStr = json['origemModelo']?.toString() ?? '';
final origemModelo = switch (origemModeloStr) {
'1' => 'Sistema Remetente',
'2' => 'RFB',
_ => origemModeloStr,
};
final relevanciaStr = json['relevancia']?.toString() ?? '';
final relevancia = switch (relevanciaStr) {
'1' => 'Sem relevância',
'2' => 'Com relevância',
_ => relevanciaStr,
};
final tipoOrigemStr = json['tipoOrigem']?.toString() ?? '';
final tipoOrigem = switch (tipoOrigemStr) {
'1' => 'Receita',
'2' => 'Estado',
'3' => 'Município',
_ => tipoOrigemStr,
};
return MensagemCaixaPostal(
codigoSistemaRemetente: json['codigoSistemaRemetente']?.toString() ?? '',
codigoModelo: json['codigoModelo']?.toString() ?? '',
dataEnvio: json['dataEnvio']?.toString() ?? '',
horaEnvio: json['horaEnvio']?.toString() ?? '',
numeroControle: json['numeroControle']?.toString() ?? '',
indicadorLeitura: indicadorLeitura,
dataLeitura: json['dataLeitura']?.toString() ?? '',
horaLeitura: json['horaLeitura']?.toString() ?? '',
dataExclusao: json['dataExclusao']?.toString() ?? '',
horaExclusao: json['horaExclusao']?.toString() ?? '',
dataCiencia: json['dataCiencia']?.toString() ?? '',
assuntoModelo: assuntoModeloProcessado,
dataValidade: json['dataValidade']?.toString() ?? '',
origemModelo: origemModelo,
valorParametroAssunto: valorParametroAssunto,
relevancia: relevancia,
isn: json['isn']?.toString() ?? '',
tipoOrigem: tipoOrigem,
descricaoOrigem: json['descricaoOrigem']?.toString() ?? '',
indicadorFavorito: indicadorFavorito,
foiLida: indicadorLeituraStr == '1',
isFavorita: indicadorFavoritoStr == '1',
temAltaRelevancia: relevanciaStr == '2',
);
}