dcf33befec3e440b68448f95b570d8f5272063e1
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>
Description
No description provided
Languages
TypeScript
76.5%
JavaScript
23.1%
Shell
0.2%