from typing import Any import nh3 from django.db.models import Q from rest_framework import serializers from . import catalogo from .indicadores import calculo as indicadores_calculo from .models import ( AcessoGeral, AcessoGeralSecao, CategoriaEvento, CompromissoAgenda, Departamento, Favorito, FuncaoTelefonia, ImportacaoPlanoSaude, ImportacaoPlanoSaudeAuditoria, ImportacaoPlanoSaudeLinha, IndicadorApuracao, IndicadorApuracaoColaborador, IndicadorApuracaoEmpresa, IndicadorApuracaoResposta, IndicadorCriterio, IndicadorDepartamento, IndicadorDepartamentoGerente, IndicadorPercentualTipo, LinkFerramenta, LinkFerramentaFavorito, NotificacaoDispensada, ParametroFiscalCustoContratacao, PerfilAcesso, Ramal, RamalAusencia, RegraCusteioPlanoSaude, TelefoneExterno, Usuario, WidgetUsuario, ) from .custo_contratacao.calculo import EntradaSimulacaoEmpregado from .planos_saude.leiaute_sistema import formata_valor_br, parse_valor_br from .planos_saude.pipeline import CUSTEIOS_VALIDOS, OPERADORAS, TIPOS_LANCAMENTO_VALIDOS, TIPOS_PESSOA_VALIDOS # Observações de Acesso Geral aceitam imagens embutidas (ver "Acessos Gerais" no # CLAUDE.md) — o conteúdo vem de um
no cliente e é # renderizado via innerHTML pra qualquer usuário com acesso de visualização, então # passa por um allowlist estrito (nh3 — binding Python da lib Rust "ammonia"; # usado no lugar do bleach, que está sem manutenção desde 2023 e parou de # receber releases, inclusive de segurança) antes de salvar: só marcação de # texto básica + , nada de