HANDOFF: C10 fechado · 5/5 sub-testes OK · proximo C11

Cenario 10 (status change avulsa) completo:
- A: Realizada sem markPaid (record pending preservado)
- A2: Realizada + markPaid maquininha (paid + paid_at + payment_method)
- B: Faltou + multa fixed R$ 30 (original cancelled + nova multa)
- C: Cancelado >2h (original cancelled, sem multa)
- C2: Cancelado tardio <2h, full charge (original cancelled + nova taxa)

Bugs descobertos + corrigidos durante a bateria: cobranca dupla na
multa (cancela original agora), _reloadRange not defined no escopo
de _buildHandlers, badge $ amber em sessao encerrada, paymentLabel
usando ev.price em vez de paymentAmount pra pending, popover
permitindo emissao de fatura em sessao cancelada.

3 pendencias pos-C13 mapeadas em memoria + addendum HTML do doc.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Leonardo
2026-05-20 10:35:28 -03:00
parent 753182cfad
commit 1e74a115de
+26 -7
View File
@@ -1,14 +1,33 @@
# HANDOFF — 2026-05-20 (C10 pré-teste · code-fix + seeds prontos)
# HANDOFF — 2026-05-20 (C10 ✅ completo · próximo C11)
Documento de continuidade. **Quando voltar, comece lendo esta página até o fim.**
> **🎯 SE A FORÇA CAIR / SESSÃO PERDER CONTEXTO:** estamos no **Cenário 10**
> (status change avulsa). Code-fix pra cancelar pendingRecord aplicado +
> financial_exceptions da Melissa seedadas no DB. **Falta**: rodar os 5
> sub-testes (a/a2/b/c/c2) e validar.
> **🎯 SE A FORÇA CAIR / SESSÃO PERDER CONTEXTO:** **C10 fechado** (todos
> os 5 sub-testes A/A2/B/C/C2 passaram). Próximo: **Cenário 11** (status
> change em pacote saldo — Carl Jung ou similar). Pós C11: C12 (antecipar
> pagamento) → C13 (edit cobrada). Depois replicar em Rail + Clínica.
> **🟢 PRÉ-TESTE C10 SALVO**. Pós-teste, próximos cenários: C11 (status
> change pacote saldo) → C12 (antecipar pagamento) → C13 (edit cobrada).
> **🟢 C10 SALVO COMPLETO**. 3 commits: d6423da (pre-fix cancel original)
> → 3caf579 (botão Agendada + popover fixes) → 753182c (lock sessão
> encerrada + addendum doc). Working tree limpo, pronto pra C11.
### C10 sub-test results
| # | Teste | DB validado | Notas |
|---|---|---|---|
| A | Realizada sem markPaid | ✅ status=realizado, record=pending | Bubble do C9 funcionou |
| A2 | Realizada + markPaid maquininha | ✅ status=realizado, record=paid, payment_method=cartao_maquininha, paid_at set | João Almeida |
| B | Faltou + multa R$ 30 (fixed_fee) | ✅ original cancelled + nova multa "Multa por falta · sessão dd/mm/aa" | Otto Rank |
| C | Cancelado >2h antecedência | ✅ original cancelled, sem multa | Otto / Karen |
| C2 | Cancelado tardio (<2h) full charge | ✅ original cancelled + nova "Taxa de cancelamento tardio · sessão dd/mm/aa" | Karen Horney |
### Pendências mapeadas durante C10 — pós-C13
- **Reverse transitions**: faltou/cancelado → agendado deixa multa órfã. Implementar confirm dialog oferecendo auto-cancelar multa.
- **Popover snapshot**: `eventoSelecionado.value = ev` é snapshot, não acompanha _paymentStateMap. Fix: guardar ev.id, derivar via computed.
- **Cleanup teste**: Otto sessão 5364f631 às 19:30 UTC tem record pending R$ 40 leftover do teste A original. Apagar quando convenient.
Memórias relevantes:
- `project_agenda_reverse_transitions.md`
- `project_melissa_popover_snapshot.md`
### Code-fix aplicado em 20/05 (pré-C10)
- **`useMelissaAgenda.js:1450-1505`** — `_applyStatusDecisions` agora cancela