feat(#45): historisation mensuelle des pots et sous-pots #48

Merged
pickle-dev-fr merged 5 commits from feat/45 into main 2026-04-23 01:52:04 +00:00

Résumé

  • Modèle SubPotSnapshot : snapshot mensuel par sous-pot (prevision, current, remaining)
  • Migration Alembic
  • Job scheduler quotidien : snapshot auto à la fin de chaque cycle budgétaire
  • Endpoint GET /stats/accounts/{id}/pots-history + POST pour déclenchement manuel
  • StatsPage : graphique barres groupées prévision vs réel par mois
  • PotEditPage : indicateur de tendance ↑↓% vs mois précédent sur chaque sous-pot

Closes #45

🤖 Generated with Claude Code

## Résumé - Modèle `SubPotSnapshot` : snapshot mensuel par sous-pot (prevision, current, remaining) - Migration Alembic - Job scheduler quotidien : snapshot auto à la fin de chaque cycle budgétaire - Endpoint GET `/stats/accounts/{id}/pots-history` + POST pour déclenchement manuel - **StatsPage** : graphique barres groupées prévision vs réel par mois - **PotEditPage** : indicateur de tendance ↑↓% vs mois précédent sur chaque sous-pot Closes #45 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Backend :
- Modèle SubPotSnapshot (sub_pot_id, pot_id, account_id, year, month,
  prevision, current, remaining) avec contrainte unique par mois
- Migration Alembic
- SnapshotService : création/mise à jour et lecture de l'historique
- Job scheduler quotidien à 00:01 : snapshot auto en fin de cycle
- Endpoints GET /stats/accounts/{id}/pots-history
  et POST /stats/accounts/{id}/pots-history/snapshot (déclenchement manuel)

Frontend :
- StatsPage : graphique barres groupées prévision vs réel par mois
  avec bouton de snapshot manuel
- PotEditPage : indicateur de tendance ↑↓% vs mois précédent sur chaque
  sous-pot (basé sur le dernier snapshot disponible)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Cartes revenu/dépenses/delta : indicateur ↑↓% vs mois précédent
- Nouvelle carte "Δ moyen" : moyenne sur les 6 derniers mois
- Retrait des tendances de PotEditPage (déplacées ici)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Clés i18n avg_delta et vs_prev_month (FR + EN)
- useTranslation dans StatCard pour "vs mois préc."
- pctChange : seuil 0.01 au lieu de === 0 pour éviter null
  quand le delta précédent est quasi-nul

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Race condition : quand !authenticated, l'effet mettait loadingAccounts=false
trop tôt. À la résolution de l'auth, RequiresAccount voyait
loadingAccounts=false + hasAccounts=false et redirigeait vers /accounts
avant que le rechargement des comptes ait lieu, causant un retour
systématique à l'accueil au rechargement de page.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pickle-dev-fr deleted branch feat/45 2026-04-23 01:52:04 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pickle-dev-fr/FamilyBudget!48
No description provided.