# 5.3 — Accès à l'espace parent & abritage de la gestion podcasts ## Objectif Relier l'icône discrète de l'écran enfant à une porte parentale (saisie du code) qui ouvre l'espace parent, et y intégrer la gestion des abonnements (J3). ## Périmètre & hors-périmètre - Inclus : porte parentale (saisie + vérification), espace parent, déplacement de la gestion podcasts (J3) derrière cette porte. - Exclus : réglages de limites (J6, qui s'ajouteront à l'espace parent). ## Dépendances 5.1, 5.2 (code + vérification), 3.x (gestion podcasts), 4.2 (icône posée). ## Conception - **Application** : `VerifyParentalCodeUseCase` (utilise `ParentalCodeRepository.verify`). - **Presentation** (`features/parental/presentation/`) : - `ParentGateView` : pavé numérique, saisie 4 chiffres → `VerifyParentalCodeUseCase`. Bon code → navigation espace parent ; mauvais → message + reset saisie. Anti-spam simple (léger délai après N échecs) optionnel, documenté. - `ParentHomeView` : menu de l'espace parent → « Mes podcasts » (écrans de J3), « Réglages » (changer le code), placeholder « Limites » (rempli en J6). - Brancher les écrans de gestion podcasts de J3 ici, et **retirer l'accès dev temporaire** mis en place au J3. - Sortie de l'espace parent → retour à l'écran enfant (qui réactive l'épinglage, J4). ## Plan TDD 1. **Red** : `verify_parental_code_use_case_test.dart` — bon code → `true` ; mauvais → `false` (repo mocké). 2. **Green** : implémenter. 3. **Red** : `parent_gate_view_test.dart` (widget) — saisie correcte → navigation vers l'espace parent (provider mocké) ; incorrecte → message d'erreur, pas de navigation. 4. **Green** : implémenter la porte. 5. **Red** : `parent_home_view_test.dart` — les entrées de menu mènent aux écrans attendus (podcasts, réglages). 6. **Green** : implémenter l'espace parent + câbler la gestion podcasts. 7. **Refactor** : supprimer l'accès dev temporaire de J3 ; vérifier qu'on n'atteint plus la gestion podcasts sans code. ## Definition of Done - Tests use case + porte + accueil parent verts. - Depuis l'écran enfant : ⚙️ → code correct → gestion des podcasts ; code incorrect → refus ; aucun accès à la gestion sans code. - `tool/check.sh` passe ; étape 5.3 cochée dans `ROADMAP.md`. ## Risques / notes - Vérifier qu'aucune route résiduelle (dev J3) ne contourne la porte parentale.