feat(reports): getCategoryOverTime -> arbre tendances (sidecar id-keyed) + resultats (#260) #264
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#264
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ajouter a
getCategoryOverTimeun champ hierarchiquetree: OverTimeRow[]cle-par-id, construit via le builder generique (#2a), feuille-driven income-first, sans top-N ni bucket Other. Approche sidecar (resolution des 3 critiques review) : le pivot par mois (data/categories/colors/types) reste INCHANGE pour le chart + le dashboard.computeOverTimeResultsconsomme l'arbre id-keyed (sous-totaux + Resultat calcules sur les feuilles). Le chart conserve un cap top-N sur la serie pivot.Fichiers concernes
src/services/reportService.ts:getCategoryOverTime:71-193(ajoutertree, retirer LIMIT 50 + bucket Other du chemin arbre)src/shared/types/index.ts:CategoryOverTimeData:370-377+ nouveauOverTimeRow(champs snake_caseparent_id/is_parent/depth/category_type+monthly[], commeCategoryDelta)src/services/overTimeResults.ts:computeOverTimeResults:63consomme l'arbre id-keyed ; corriger le commentaire perime:8-9(income-first depuis #253)src/components/reports/CategoryOverTimeChart.tsx: garder le pivot, appliquer/garder un cap top-N feuilles (pas d'explosion de series)src/services/reportService.test.ts: reecrire les assertions topN/Other (elles encodent le comportement supprime)src/services/overTimeResults.test.ts+ tests de regressionDepends on
Criteres d'acceptation
treeid-keyed, parent-first depth-first, income-first, sans LIMIT/Otherdata.datareste INCHANGE : chart Trends et dashboard (DashboardPage.tsx:142) rendent a l'identique — verifieMAX_TREE_DEPTH+ test cycleparent_idA->B->AReview caveats
OverTimeRowreprend les champs snake_case deCategoryDeltapour composer aveccollapsibleRows/useCollapsibleGroupssans friction.Decisions prises ce soir
Spec source
spec-plan-tendances-hierarchiques.md (milestone overnight-2026-07-08-tendances-hierarchiques)