v1.32.0 — Recompensas (Gamificação 3d)
Gamificação 3d — Recompensas
Fecha o ciclo econômico: os coins acumulados (opens/missões/medalhas) viram gastáveis numa loja de recompensas definidas pelos pais. Fluxo pedir→pai aprova→deduz, com dedução atômica (impossível ficar negativo).
Destaques
- Migração 021 (
rewardsglobal +reward_redemptionscom snapshot do custo) + DB v21. ProgressionRepository::spendatômico (UPDATE ... WHERE coins >= X).GET/POST/PUT/DELETE /rewards(catálogo dos pais),GET /child/rewards(loja + saldo),/child/redemptions(resgate),/redemptions/{id}/approve|deny(aprovação atômica).- App-filho: página Loja + card na Home. App-pais: página Recompensas (gestão + fila de aprovação).
Testes
PHP unit 511 · vitest app-child 108 · app-parent 303 · e2e 3 · CI 4/4 verde.
Migração idempotente. PR #90.