Status: Done
Área: whatsapp
Tipo: fix
Specs path: N/A — feito direto via commit/PR (sem .specs/ local); doc canônica em specs/specification-whatsapp.md §DESATIVAÇÃO TEMPORÁRIA
Concluído em: 2026-08-06
Resumo
Verificação de negócio da Meta Business Manager bloqueada (razão social ausente no site). Até aprovar, integração WhatsApp desligada por kill-switch explícito (WhatsApp:Habilitado=false default), não mais implícito pela ausência de credencial.
- Gate DI (
InfrastructureExtensions) força NullWhatsAppNotifier mesmo com credencial válida configurada.
- Webhook
POST /webhooks/whatsapp checa a flag ANTES de validar HMAC — false → 200 Ok() no-op.
WhatsAppHealthCheck checa a flag antes da credencial — false → Healthy sem bater na Graph API.
- Migration
InativarPlanoProPlus: is_ativo=false no plano ProPlus (único tier ativo que confere WhatsApp).
- Frontend: chip "WhatsApp" em Meu Plano sobreposto por
WHATSAPP_TEMPORARIAMENTE_INDISPONIVEL.
- Teste de seed pré-existente (
SeedAsync_PlanosNaoElite_PermanecemAtivos) atualizado para refletir ProPlus inativo (split em SeedAsync_PlanoProPlus_CriadoInativo + SeedAsync_PlanosVendaveis_PermanecemAtivos).
Refs
Status: Done
Área: whatsapp
Tipo: fix
Specs path: N/A — feito direto via commit/PR (sem
.specs/local); doc canônica emspecs/specification-whatsapp.md§DESATIVAÇÃO TEMPORÁRIAConcluído em: 2026-08-06
Resumo
Verificação de negócio da Meta Business Manager bloqueada (razão social ausente no site). Até aprovar, integração WhatsApp desligada por kill-switch explícito (
WhatsApp:Habilitado=falsedefault), não mais implícito pela ausência de credencial.InfrastructureExtensions) forçaNullWhatsAppNotifiermesmo com credencial válida configurada.POST /webhooks/whatsappcheca a flag ANTES de validar HMAC —false→200 Ok()no-op.WhatsAppHealthCheckcheca a flag antes da credencial —false→Healthysem bater na Graph API.InativarPlanoProPlus:is_ativo=falseno plano ProPlus (único tier ativo que confere WhatsApp).WHATSAPP_TEMPORARIAMENTE_INDISPONIVEL.SeedAsync_PlanosNaoElite_PermanecemAtivos) atualizado para refletir ProPlus inativo (split emSeedAsync_PlanoProPlus_CriadoInativo+SeedAsync_PlanosVendaveis_PermanecemAtivos).Refs
homolog, squash)specs/specification-whatsapp.md§DESATIVAÇÃO TEMPORÁRIA (plano de reativação documentado lá)