Documentation Index
Fetch the complete documentation index at: https://docs.nextmed.med.br/llms.txt
Use this file to discover all available pages before exploring further.
Arquitetura
Camadas do projeto
src/app: App Router do Next.js, com layouts, paginas e route handlers emsrc/app/api.src/components: componentes de produto compartilhados, incluindo chat, referrals, navbar, video call e dialogs.src/lib: hooks, providers, stores, queries de backend, IA, Firebase e utilitarios de dominio.src/package: pacote interno com HTTP client, themes, helpers, Firebase, modelos e componentes base.src/@core: camada de casos de uso, entidades/gateways e adaptadores para alguns fluxos de instituicao, unidade e autenticacao.public: assets, manifest, service worker publico e imagens.
Fluxo HTTP
O cliente HTTP principal esta emsrc/package/http/http.ts.
baseURL:NEXT_PUBLIC_GATEWAY_HOST_WEB.- Header padrao:
app-name: nextmed-web. - Autenticacao:
Authorization: Bearer <token>, recuperado dos cookies pelo helperauth-token-handler. - Em
401ou500comerrorCode: TOKEN_EXPIRED, a aplicacao remove tokens, redireciona para/e mostra toast de sessao expirada. - Erros
4xxe5xxsao enviados ao Sentry, exceto401e403no grupo de client errors.
Cookies de autenticacao
Os cookies seguem o prefixo do ambiente:Padrao BFF
Alguns endpoints emsrc/app/api funcionam como BFF:
- escondem tokens de Dyte e OpenAI no servidor.
- fazem proxy ou composicao com o gateway NextMed.
- leem cookies de sessao no servidor.
- retornam contratos simplificados para o frontend.
PWA
O PWA e configurado nonext.config.js com Serwist:
swSrc:src/lib/sw.ts.swDest:public/sw.js.- cache em navegacao frontend habilitado.
- reload automatico quando volta online.
- desabilitado em
NODE_ENV=development. - tamanho maximo de arquivo em cache: 5 MB.
Observabilidade
- Sentry configurado para o projeto
web-nextmed-pwa. - PostHog em provider dedicado.
- Google Analytics com
NEXT_PUBLIC_GA_TRACKING_ID, defaultG-T7JQ0S30PX.
Pontos de atencao
- Alguns arquivos usam
OPEN_API_KEYpara OpenAI, enquanto o schema de ambiente declaraOPENAI_API_KEY. O endpointPOST /api/anamnesis-chat/evaluateaceita ambos, mas os demais endpoints de IA usam principalmenteOPEN_API_KEY. POST /api/dyte/webhookchama diretamentehttps://api-dev.nextmed.med.br, em vez de usarGATEWAY_HOST_WEB.src/lib/queries/referrals/get-referral-details.tsmonta objetos usandores.datadentro deres.data.referrals.map, o que parece suspeito para mapeamento por item.