Refonte seed catégories IPC — Page de migration 3-étapes (Livraison 2) #121

Open
opened 2026-04-19 15:08:44 +00:00 by maximus · 0 comments
Owner

Refs: spec-decisions-refonte-seed-categories-ipc.md + spec-plan-refonte-seed-categories-ipc.md

Livraison 2 — Page 3 étapes séquentielles (Découvrir / Simuler / Consentir) qui orchestre la migration avec backup obligatoire, dry-run, et transaction SQL atomique.

Tâches

  • Créer route /paramètres/categories/migrer
  • Créer src/pages/CategoriesMigrationPage.tsx avec routeur interne par étape
  • Créer composants src/components/categories-migration/ :
    • StepDiscover.tsx — reprend la page Guide en lecture
    • StepSimulate.tsx — table 3 colonnes avec badges confiance + panneau latéral
    • StepConsent.tsx — checklist + loader 4 sous-étapes
    • MappingRow.tsx — ligne avec badge + action
    • TransactionPreviewPanel.tsx — panneau latéral transactions impactées
  • Créer src/hooks/useCategoryMigration.ts (useReducer)
  • Créer src/services/categoryMigrationService.ts avec applyMigration(plan, backup) :
    • Transaction SQL atomique (BEGIN/COMMIT/ROLLBACK)
    • INSERT v1 + UPDATE transactions/budgets/keywords + création parent Catégories personnalisées (migration) + DELETE v2 non mappées
    • Pose categories_schema_version=v1 + journal dans user_preferences.last_categories_migration
  • Écran succès avec chemin backup
  • Écran échec backup : abort complet, aucune écriture
  • Blocage étape 2 tant que toutes les décisions 🟠 ne sont pas résolues
  • i18n FR/EN

Dépendances

Depends on #119, Depends on #120

Mockup

~/claude-code/.spikes/archived/seed-standard/code/preview-page-mockup.md — complet, 3 étapes + écrans succès/échec

Refs: spec-decisions-refonte-seed-categories-ipc.md + spec-plan-refonte-seed-categories-ipc.md Livraison 2 — Page 3 étapes séquentielles (Découvrir / Simuler / Consentir) qui orchestre la migration avec backup obligatoire, dry-run, et transaction SQL atomique. ## Tâches - [ ] Créer route `/paramètres/categories/migrer` - [ ] Créer `src/pages/CategoriesMigrationPage.tsx` avec routeur interne par étape - [ ] Créer composants `src/components/categories-migration/` : - `StepDiscover.tsx` — reprend la page Guide en lecture - `StepSimulate.tsx` — table 3 colonnes avec badges confiance + panneau latéral - `StepConsent.tsx` — checklist + loader 4 sous-étapes - `MappingRow.tsx` — ligne avec badge + action - `TransactionPreviewPanel.tsx` — panneau latéral transactions impactées - [ ] Créer `src/hooks/useCategoryMigration.ts` (useReducer) - [ ] Créer `src/services/categoryMigrationService.ts` avec `applyMigration(plan, backup)` : - Transaction SQL atomique (BEGIN/COMMIT/ROLLBACK) - INSERT v1 + UPDATE transactions/budgets/keywords + création parent Catégories personnalisées (migration) + DELETE v2 non mappées - Pose `categories_schema_version=v1` + journal dans `user_preferences.last_categories_migration` - [ ] Écran succès avec chemin backup - [ ] Écran échec backup : abort complet, aucune écriture - [ ] Blocage étape 2 tant que toutes les décisions 🟠 ne sont pas résolues - [ ] i18n FR/EN ## Dépendances Depends on #119, Depends on #120 ## Mockup `~/claude-code/.spikes/archived/seed-standard/code/preview-page-mockup.md` — complet, 3 étapes + écrans succès/échec
maximus added this to the spec-refonte-seed-categories-ipc milestone 2026-04-19 15:08:44 +00:00
maximus added the
status:ready
type:feature
source:human
labels 2026-04-19 15:08:44 +00:00
Sign in to join this conversation.
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: maximus/Simpl-Resultat#121
No description provided.