Files
scoreodonto.com/frontend/components
VPS 4 Builder dcf33befec feat(comunicacao-interna): perfil de contato de não-pacientes + gate obrigatório
Base da "comunicação interna": cada não-paciente (dentista/funcionário) cadastra
endereço, MÚLTIPLOS números de WhatsApp e a disponibilidade de agenda.

Backend:
- Tabela pessoa_comunicacao (usuario_id+clinica_id): endereco/numeros/agenda JSONB + completo.
- GET/PUT /api/comunicacao/:usuarioId ('me' = usuário atual). Autoriza self OU gestor
  (dono/admin). Recalcula `completo` no PUT (regra: endereço + ≥1 número com descrição
  e ≥1 janela de horário + agenda decidida; se aberta, exige ≥1 janela).

Frontend:
- ComunicacaoInternaModal (full-screen): Endereço (com ViaCEP), Números (cada um com
  descrição + situações + janelas de horário permitido p/ a Secretária enviar msg),
  Agenda (abrir/fechar + horários de atendimento). Editor de janelas reutilizável.
- Gate no App.tsx: todo não-paciente com clínica ativa cujo perfil está incompleto vê
  o modal FORÇADO em todas as telas (espelha o gate de troca de senha) até completar.

Verificado E2E: PUT incompleto->completo=false; PUT completo->true; GET reflete.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 17:13:14 +02:00
..