wiki + padronizacao: agenda Fase 4 residual 70% fechada
Atualiza PADRONIZACAO.md marcando Fase 4 da agenda em sua maior parte fechada: popover snapshot + reverse transition (ja feitos em C11) + decomposicao A+B1+B2 (-991L useMelissaAgenda) + Fases C+D (Rail/Clinica adotam billing core via useAgendaStatusChange) + C12 UX iter. Pendente: indicadores visuais 3 canais em Rail/Clinica + popover Rail antecipar/revogar/trocar metodo + doc de ajuda. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1429,3 +1429,51 @@ closure.
|
|||||||
|
|
||||||
Pendente: Fase C (adapter Rail) + Fase D (adapter Clinica) +
|
Pendente: Fase C (adapter Rail) + Fase D (adapter Clinica) +
|
||||||
doc ajuda.
|
doc ajuda.
|
||||||
|
|
||||||
|
## [2026-05-21 deep night] session | agenda Fases C + D — Rail+Clinica adotam billing core
|
||||||
|
Touched: none
|
||||||
|
|
||||||
|
Replicacao Rail/Clinica fechada via composable reusavel
|
||||||
|
useAgendaStatusChange (Tipo A wrapper sobre agendaBilling.service).
|
||||||
|
|
||||||
|
3 commits:
|
||||||
|
|
||||||
|
1) Fase C (034c2c0): useAgendaStatusChange composable novo +
|
||||||
|
AgendaTerapeutaPage onUpdateSeriesEvent refatorado pra usar
|
||||||
|
applyStatusChange (load context + dialog se preciso + apply
|
||||||
|
decisoes). AgendaStatusChangeConfirmDialog plugado no template.
|
||||||
|
|
||||||
|
Antes: Rail fazia so update(id, { status }) cru. Zero das
|
||||||
|
features C7-C13.
|
||||||
|
|
||||||
|
Depois: Rail tem feature parity com Melissa pra status change.
|
||||||
|
Multa por falta, taxa cancelamento tardio, consumir saldo,
|
||||||
|
gerar cobranca pacote saldo, reverse transition trava.
|
||||||
|
|
||||||
|
2) Fase D (6807b44): AgendaClinicaPage espelha Fase C usando o
|
||||||
|
mesmo composable. Diferencas adaptadas (updateClinic + createClinic
|
||||||
|
recebem tenantId arg explicito).
|
||||||
|
|
||||||
|
3) Pendente residual:
|
||||||
|
- Indicadores visuais (3 canais: barra esquerda verde / badge $
|
||||||
|
amber / neutro) ainda nao replicados no Rail/Clinica — sao
|
||||||
|
custom event classNames do FullCalendar, requerem _payment
|
||||||
|
StateMap.
|
||||||
|
- Antecipar/Revogar/Trocar metodo no popover do Rail — Rail
|
||||||
|
nao tem popover separado, usa AgendaEventDialog direto;
|
||||||
|
precisa refactor maior pra acomodar.
|
||||||
|
- Doc ajuda completa.
|
||||||
|
|
||||||
|
ESTADO: agenda Fase 4 residual 70% fechada. C7-C13 core flow
|
||||||
|
(status change com billing) agora cobre os 3 layouts. UI fina
|
||||||
|
(popover antecipar, indicadores visuais) fica pra iter incremental
|
||||||
|
sob demanda.
|
||||||
|
|
||||||
|
TOTAL DA SESSAO (24/05 - 25/05, ~24 commits):
|
||||||
|
- CFP #6/#7 (Compliance Fase 1.2 ✅)
|
||||||
|
- #14 Recibo profissional PDF
|
||||||
|
- §1.3 UX 3/4 (#10 #11 #13)
|
||||||
|
- C12 UX iter (Trocar metodo + filtro cancelled)
|
||||||
|
- Agenda decomposicao A+B1+B2: -991L em useMelissaAgenda (~33%)
|
||||||
|
- Agenda Fases C+D: Rail+Clinica adotam billing core
|
||||||
|
- useAgendaStatusChange composable novo
|
||||||
|
|||||||
@@ -123,13 +123,22 @@ Do `project_graphify_findings_20260504`:
|
|||||||
- [ ] E2E Playwright crítico (#16)
|
- [ ] E2E Playwright crítico (#16)
|
||||||
- [ ] Sentry (#18)
|
- [ ] Sentry (#18)
|
||||||
|
|
||||||
### Fase 4 — Agenda residual (por último)
|
### Fase 4 — Agenda residual
|
||||||
|
|
||||||
- [ ] Popover snapshot stale → `ev.id` + computed
|
- [x] **Popover snapshot stale** (commit `f83315b` durante C11) — watch em `MelissaLayout` cobre virtual→materializada.
|
||||||
- [ ] Reverse transition confirm dialogs (realizado paid, faltou multa, pacote saldo)
|
- [x] **Reverse transition confirm dialogs** (commit `5684297` durante C11) — `ctx.reverseArtifacts` + dialog.
|
||||||
- [ ] Replicação Rail (AgendaTerapeutaPage) + Clínica (AgendaClinicaPage)
|
- [x] **Decomposição agenda (Fases A+B1+B2 · 2026-05-21)** — `useMelissaAgenda.js` saiu de 3033L → 2042L (-991L, ~33%). 3 utils + 1 service novo (`agendaBilling.service`).
|
||||||
- [ ] C12 antecipar — iterar UX
|
- Fase A: `features/agenda/utils/{eventoTipo,dbFields,timeHelpers,colors}.js`
|
||||||
- [ ] Doc de ajuda completa
|
- Fase B1 (commit `e7e3d1b`): service ganha `computeSeriePrice`, `generateOccurrenceDates`, `loadStatusChangeContext`, `needsStatusConfirmDialog`.
|
||||||
|
- Fase B2 (commit `049dd91`): service ganha `applyStatusDecisions`, `createPackageContract`, `materializeAndChargePerSession`.
|
||||||
|
- [x] **Replicação Rail + Clínica (Fases C+D · 2026-05-21)** —
|
||||||
|
- Composable novo `useAgendaStatusChange` (Tipo A wrapper) reusável em qualquer page.
|
||||||
|
- Fase C (commit `034c2c0`): `AgendaTerapeutaPage.onUpdateSeriesEvent` refatorado + `AgendaStatusChangeConfirmDialog` plugado. Antes era `update(id, {status})` cru; agora cobre multa + pacote saldo + reverse.
|
||||||
|
- Fase D (commit `6807b44`): `AgendaClinicaPage` espelha Fase C com adaptações (`updateClinic`+`createClinic` recebem `tenantId` arg).
|
||||||
|
- [x] **C12 antecipar UX iter** (commits `9c518a2` + `b7f3c23`) — "Trocar método" pattern (UPDATE em vez de cancel cycle) + filtro cancelled no dialog Lançamentos.
|
||||||
|
- [ ] **Indicadores visuais 3 canais** (barra esquerda verde / badge $ amber / neutro) — replicar no Rail/Clínica. Custom event classNames do FullCalendar, requer `_paymentStateMap` bulk-load igual ao Melissa.
|
||||||
|
- [ ] **Popover Rail antecipar/revogar/trocar método** — Rail não tem popover separado (usa AgendaEventDialog direto), precisa refactor maior pra acomodar.
|
||||||
|
- [ ] **Doc de ajuda completa** — user enviará prompt específico.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user