wiki log: C12 UX iterado + agenda Fase A utils extract

Registra os 3 commits da sessao (C12 trocar metodo, C12 filtro
cancelled, Fase A utils extract). Memoria
project_c12_antecipar_iterar atualizada pra refletir patterns
prontos pra Rail/Clinica.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Leonardo
2026-05-21 09:22:10 -03:00
parent ee117eafe6
commit aa587e849c
+46
View File
@@ -1355,3 +1355,49 @@ document_templates ou setting tenants.letterhead_html.
PROXIMO: NFS-e (#15, esforco L), §1.5 Sentry (#18 nao-teste), PROXIMO: NFS-e (#15, esforco L), §1.5 Sentry (#18 nao-teste),
sweep residual (M4 cutover billing — bloqueado decisoes #2/#3/#6), sweep residual (M4 cutover billing — bloqueado decisoes #2/#3/#6),
ou agenda Fase 4 residual. ou agenda Fase 4 residual.
## [2026-05-21 night] session | agenda Fase 4: C12 UX iter + utils extract
Touched: none (durable em memoria project_c12_antecipar_iterar atualizada)
Iniciou agenda Fase 4 residual. Auditoria revelou: popover snapshot
e reverse transition trava JA estavam done de fato (commits f83315b
+ 5684297 durante C11). Pendentes reais: C12 UX, replicacao Rail/
Clinica, doc ajuda.
3 commits:
1) agenda C12 UX: "Trocar metodo" em vez de Revogar+Antecipar
MelissaEventoPanel ganha 2 botoes quando isAntecipacaoAtiva
(antes era so "Revogar"). MelissaLayout: anteciparMode ref +
onTrocarMetodoAntecipacao pre-seleciona metodo atual. confirm
Antecipar Pagamento ramifica: mode='update' faz UPDATE no paid
existente (sem cancel cycle). Result: trocar metodo gera 0
records cancelled.
2) agenda C12 UX: filtrar cancelled do dialog Lancamentos
lancamentosShowHistory ref (default false) + lancamentosFiltered
computed. UI: badge "{N} cancelado(s) ocultos" + toggle
Mostrar/Ocultar historico. Cards cancelled atenuados (opacity
0.55, border-dashed, line-through na desc) quando expandidos.
Combina com Trocar metodo — caso 99% so ve ativos.
3) agenda Fase A: extrai utils puros pra features/agenda/utils
Decomposicao em prep pra Rail/Clinica adotarem. 4 arquivos novos:
eventoTipo.js + dbFields.js + timeHelpers.js + colors.js.
useMelissaAgenda.js: 2863L -> 2792L (-71L), imports via aliases
pra nao mexer em 70+ callsites internos. Zero impacto comportamental.
C12 UX iter 3 (validar antecipar->Realizada nao duplica record) JA
estava implementado em commits 00c4168 + f83315b — comentario no
codigo de _loadStatusChangeContext confirma "ctx.existingPaidRecord"
pra evitar oferecer "Gerar cobranca nova".
PENDENTE replicacao Rail/Clinica:
- Fase B (service de billing): extrair _loadStatusChangeContext,
_applyStatusDecisions, _createPackageContract, _materializeAndCharge
PerSession num service reusavel. ~2-3h, risco medio (precisa nao
quebrar 7 ciclos da agenda C7-C13).
- Fase C/D: adapter em AgendaTerapeutaPage/AgendaClinicaPage.
ATUAL: decidir entre Fase B agora ou pausar replicacao + atacar
outro residual (NFS-e, sweep, etc).