- Pasta única scoreodonto.com/doc/ com 9 docs que prestam: VERDADE-HOJE (estado, principal), DEPLOY-PRODUCAO (runbook), BANCO-DEV-ESTRATEGIA, REGISTRY, AUDITORIA-FUNCIONAL, BACKLOG-FINANCEIRO-V1, CRM_Ortodontia, RX_ARQUITETURA, RX_BACKLOG. - Removidos os docs de infra sobrepostos/desatualizados (estado consolidado em VERDADE-HOJE; histórico fica no git): arquitetura.md, deploy.md, CHECKLIST-DEPLOY-PRODUCAO.md, PENDENCIAS.md, PENDENCIAS_E_DEPLOY.md. - Pasta documentação/ eliminada. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
11 KiB
Auditoria Funcional — ScoreOdonto (estado atual + roadmap V1/V2/V3)
Documento mestre da auto-auditoria (read-only). Gerado a partir do código em 2026-06-15. Nota de nomenclatura: NÃO existe módulo "Delivery" separado. O antigo "Delivery" foi renomeado e é o marketplace de Profissionais (propostas clínica→profissional). Onde o prompt de benchmark cita "Delivery", leia-se Profissionais.
PARTE I — Arquitetura funcional atual
Papéis (9): superadmin, admin, donoclinica, donoconsultorio, dentista, biomedico, protetico, funcionario, paciente.
Modelo multi-tenant: workspaces = linhas em clinicas (tipo clinica ou pessoal); acesso via vinculos; isolamento por clinica_id (auditado e endurecido em 8 rodadas de segurança). É um diferencial maduro.
Inventário de telas (40+), por domínio
| Domínio | Telas | Acesso |
|---|---|---|
| Núcleo clínico | Dashboard, Agenda, Pacientes, Ortodontia (OrthoView/PhotoWorkspace/Reports/Annotator), Meus Tratamentos, Lançar GTO | dono/admin/funcionário/dentista/bio/protético |
| Catálogos | Dentistas, Especialidades, Procedimentos, Planos/Convênios | dono/admin/funcionário |
| Financeiro/Comercial | Financeiro, Relatórios, Orçamentos, Contratos (motor), Gestão de Leads | dono/admin/funcionário |
| Marketplace/Recursos | Locação de Salas, Profissionais (marketplace), Diretório Prof., RX/Radiografias, Dispositivos RX | quase todos |
| Tutoria (orto) | Ser Tutor, Painel Tutor, Gestão Tutores | dentista/admin |
| Gestão | Minhas Clínicas, Equipe/Usuários (RBAC), Plugins, Configurações, Notificações | dono/admin |
| Onboarding/Auth | Landing, Login, OnboardingChat, Cadastro Dentista, Criar Clínica, Aguardando Convite, Contato Público | público |
| Superadmin | SuperAdminView (stats/usuários/clínicas/logs/financeiro/notificações), UpdateDb, Sync | superadmin |
Menu (real)
Visão Geral · Agenda · Pacientes · Lançar GTO · Ortodontia · Financeiro · Relatórios · Orçamentos · Contratos · Gestão de Leads · Meus Tratamentos · Minhas Clínicas · Dentistas · Especialidades · Procedimentos · Planos/Convênios · Equipe/Usuários · Diretório Prof. · Tutoria (3) · Notificações · Plugins · Configurações.
Menu base + filtro accessByRole + RBAC por cargo (funcoes.permissoes/nivel; array vazio herda o menu do papel). Paciente vê só Tratamentos/Notificações/Config.
Não há: menus contextuais (botão direito), menus dentro de tabelas, breadcrumbs. Navegação é hash-route + cards/modais.
Backend
≈150 endpoints. Guards: authGuard / tenantGuard / superadminGuard / adminGuard. Auditoria via audit_log. Tempo real em /api/ws.
PARTE II — Gap analysis
Forte (vantagem competitiva)
- Multitenant/multiempresa (workspaces universais; isolamento por clínica auditado).
- Agenda — anti-overbooking GLOBAL (mesma pessoa não dobra entre clínicas), faltas/reagendar/confirmar/reencaminhar, pendências "a reagendar", presença em tempo real, importar Google.
- Prontuário clínico — odontograma FDI + fotos (avaliação); Ortodontia completa (tratamento/evoluções/documentação fotográfica com anotador/escala + PDFs de tutoria); RX (plugin + laudos); GTO/guias.
- Contratos — motor universal (modelos+variáveis, gerador, assinatura interna com IP/hash, vigência/alertas, 28 modelos de catálogo). Acima da média de mercado.
- Marketplace (salas anti-conflito triplo + Profissionais com propostas/diretório).
- RBAC por cargo/nível + realtime.
Parcial
- Financeiro — só lançamentos receita/despesa + dashboard. Falta contas a pagar/receber estruturado, vencimentos, baixa.
- CRM — só Leads + conversão→paciente. Sem funil/oportunidades/campanhas.
- Convênios — "Planos/Convênios" é catálogo simples; sem regras de cobertura/repasse/glosa.
- Comunicação — notificações in-app/realtime + webhooks WhatsApp na infra; sem disparo de WhatsApp/SMS/e-mail pelo app; sem lembretes automáticos de consulta.
- Relatórios — só
productivity. - RH — dentistas/horários/equipe/funções; sem escalas/ponto/folha; repasse só na tutoria (manual).
- Mobile — web responsivo; sem PWA/app.
Ausente
- Estoque (produtos, lotes, validade, inventário, compras, fornecedores).
- Financeiro avançado: fluxo de caixa, DRE, centros de custo, conciliação bancária, comissões/rateios/repasse estruturados, gateways PIX/cartão/boleto, carnês/parcelamento.
- Prontuário: anamnese estruturada, periodontograma, assinatura do paciente no prontuário, consentimento (TCLE).
- Agenda: lista de espera, recorrência, bloqueios, recursos/equipamentos como agendáveis.
- CRM: funil, campanhas, automações (WhatsApp), pipeline de orçamento.
- Profissionais: atendimento geolocalizado/geodistância (gap já mapeado), avaliações/reputação. (Não confundir com "Delivery" — é a evolução do módulo Profissionais.)
Obsoleto / dívida técnica
UpdateDbView/Sync(legado de planilha) — manter só superadmin./fotos/:id/rawpúblicas por id (mitigado com URL assinada; ideal evoluir).- Orçamento gera um "Contrato" (documento) — convém unificar o fluxo orçamento→contrato no motor.
PARTE III — Roadmap (V1 / V2 / V3)
Matriz: Impacto (I) · Retorno financeiro (R) · Esforço (E) — escala 1–5.
V1 — Quick wins (alto I, baixo E)
| Item | I | R | E |
|---|---|---|---|
| Anamnese + TCLE estruturados no prontuário | 5 | 3 | 2 |
| Lembretes automáticos de consulta (WhatsApp/e-mail via webhook existente) | 5 | 4 | 2 |
| Agenda: bloqueios + lista de espera (reaproveitar "interesses"/anti-overbooking) | 4 | 3 | 2 |
Contas a pagar/receber sobre o financeiro atual (status/vencimento/baixa) |
5 | 4 | 3 |
| Orçamento → Contrato → Financeiro (ligar os 3 que já existem) | 5 | 5 | 3 |
| Pacote de relatórios essenciais (produção, faltas, financeiro por período, conversão de leads) | 4 | 3 | 2 |
V2 — Diferenciação e receita (alto R)
| Item | I | R | E |
|---|---|---|---|
| Comissões/Repasse profissional (agenda→procedimento→financeiro→profissional) | 5 | 5 | 4 |
| Gateways de pagamento (PIX/cartão/boleto) + carnês/parcelamento | 4 | 5 | 4 |
| CRM com funil + WhatsApp + automações (sobre Leads) | 5 | 5 | 4 |
| Fluxo de caixa + centros de custo | 4 | 4 | 3 |
| Periodontograma + evolução clínica padronizada | 4 | 2 | 3 |
| Contratos: partes externas por link + PDF server-side + Clicksign | 4 | 3 | 4 |
V3 — Plataforma
| Item | I | R | E |
|---|---|---|---|
| Estoque completo (lotes/validade/inventário/compras/fornecedores) + integração financeira | 4 | 3 | 5 |
| DRE + conciliação bancária | 3 | 4 | 5 |
| RH: escalas/ponto/produção/folha | 3 | 3 | 5 |
| App/PWA mobile | 4 | 3 | 4 |
| Profissionais: atendimento/geodistância + avaliações/reputação | 3 | 3 | 4 |
| BI/Dashboards configuráveis + alertas automatizados | 3 | 3 | 4 |
Mapa de conexões entre telas
Já existe
- Agenda → Novo Agendamento → busca Paciente → cria agendamento.
- Lead → Converter → Paciente (+ 1º agendamento).
- Agendamento → Solicitar Avaliação → novo slot vinculado.
- Paciente → tile Orçamentos → gera contrato/print.
- Sala → Reserva → anti-conflito.
- Profissional (marketplace) → Proposta → notificação.
Falta ligar (o "tecido conjuntivo" — maior ganho de V1/V2)
- Procedimento realizado (agenda) → lançamento Financeiro → Comissão → Repasse profissional.
- Orçamento aprovado → Contrato (motor) → Financeiro (parcelas).
- Contrato assinado → vigência → cobrança recorrente.
- Estoque ← consumo por procedimento.
Diagnóstico central: módulos fortes, pouco conectados. O maior retorno não é criar módulos novos, e sim LIGAR agenda↔financeiro↔contrato↔profissional.
Síntese por cenário
- Clínica/Consultório: prontos; faltam financeiro avançado + comissões.
- Dentista autônomo: workspace "pessoal" já funciona; falta repasse/produção.
- Biomédico: áreas/especialidades ok; harmonização (contrato já criado); falta agenda estética dedicada.
- Locação de salas: maduro; falta integrar reserva→financeiro/contrato de locação (o motor já tem o modelo).
- Profissionais (marketplace, ex-"Delivery"): maduro; falta avaliações/reputação, fechamento via contrato e geodistância.
- Multiempresa/Multitenant: o ponto mais forte — base sólida para escalar.
DEEP-DIVE 1 — Financeiro + Comissões/Repasse (2026-06-15)
A) Checklist da tela Financeiro
- Objetivo: registrar/acompanhar lançamentos (receita/despesa) por status.
- Acesso: Menu → Financeiro; dono/admin/funcionário (escopo por clínica,
tenantGuard). - Dados: lista (paciente, descrição, valor, vencimento, status) + KPIs Recebido/Pendente/Atrasado.
- Tabela
financeiro:id, clinica_id, pacientenome(texto), descricao, valor, datavencimento, status(Pago/Pendente/Atrasado), formapagamento, tipo(RECEITA/DESPESA). 0 linhas. - Botões: Filtrar(status) · Novo lançamento · linha: Confirmar pagamento, Gerar recibo (download), Excluir.
- Integrações: PARCIAL —
LancarProcedimentoModal → saveFinanceiro(procedimento gera 1 lançamento). Nenhuma outra. - Limitações: soma por status; "Atrasado" manual.
B) Diagnóstico — Financeiro é uma "ilha"
A financeiro não tem chaves de ligação: pacientenome é texto (não FK); não há profissional_id, agendamento_id, procedimento_id, orcamento_id, contrato_id. Despesa = só tipo=DESPESA (sem fornecedor/centro de custo/recorrência). Comissão/Repasse inexistente (procedimentos.valorparticular sem %; dentistas sem repasse). A maior alavanca é a FK profissional_id — sem ela, não há comissão, repasse nem relatório de produção.
C) Fluxo conectado proposto
Agenda (paciente+dentista+procedimento) → concluído → LANÇAMENTO (com FKs) → regra de COMISSÃO → REPASSE por período. Orçamento aprovado → Contrato (motor) → parcelas (contas a receber). Despesa → fornecedor/centro de custo → fluxo de caixa/DRE.
D) Evolução do modelo
- V1: FKs em
financeiro(paciente_id, profissional_id, procedimento_id, agendamento_id, contrato_id, origem);pago_em; job de "Atrasado"; contas a pagar (fornecedor/centro de custo/recorrente); relatórios essenciais. - V2:
comissao_regras(por procedimento/profissional/convênio; %/fixo/produção; base bruta/líquida);comissao_valorno lançamento;repasses(consolida por profissional/período) formalizado pelos modelos "Contrato por Comissão/Produção/Percentual" do motor.
E) Regras de comissão por cenário
Dentista da clínica (% líquido por especialidade/convênio); autônomo (100%, ou taxa de sala); sala alugada (receita − aluguel, liga sala_reservas); biomédico/harmonização (% + material parametrizável); Profissionais/marketplace (contrato de comissão define %); multiempresa (repasse consolidado por unidade).
Backlog acionável do V1 Financeiro: ver
BACKLOG-FINANCEIRO-V1.md.