# Découpage tickets — Quotidien parent / AM > **Statut :** backlog Gitea **0.2.0** / épic [#165](https://git.ptits-pas.fr/jmartin/petitspas/issues/165) — architecture absences + cartes recentrée (sept. 2026). > **Réf. visuelle :** [maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png](./maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png) > **Mini-spec :** [31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md](./31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md) > **Décision :** [24_DECISIONS-PROJET.md](./24_DECISIONS-PROJET.md) §32 (Cartes ≠ back Absences). ## Intention produit (rappel) - TdB PC en **3 colonnes** : **cartes** | **blog** (défaut) | **messagerie** - Contexte actif = **couple** enfant–nounou (parent) / enfant–parent(s) (AM) - Blog **indispensable** (AM + RPE) ; messagerie type WhatsApp (BABA, 2 parents = même fil AM) - Look **papier / pastel / lignée inscription** (pas le dashboard staff) - **Widgets partagés** parent ↔ AM (blog, messagerie, cartes, coquille, couple paramétré) — pas de double implémentation - « Effet démo » = logiciel peuplé + sync live multi-écrans — **pas** un sous-MVP jetable - **Hors ce découpage** (jalons suivants) : page Contrat riche (Pajemploi, CP), notifs CDC fourre-tout, masquage messages, posts blog parent, Agenda « riche » (entrée bandeau possible en stub) ## Contrainte technique front (dictée 23/09) Les panneaux parent et AM étant **quasiment identiques**, le découpage impose des **briques réutilisables** : | Widget / module | Tickets concernés | |-----------------|-------------------| | Coquille TdB 3 colonnes + bandeau | A1, B1 — B1 **réutilise** la coquille d’A1 | | Sélecteur couple (mode parent vs AM) | A2, B2 — **un** composant, 2 modes | | Flux de cartes | C2, C3 — **un** widget + config rôles | | Blog (fil + composeur) | D2, D3, D4 — même brique | | Messagerie (chat + onglets) | E4, E5, E6 — même brique | Les tickets **[Front] AM** (B1, B2, C3, D3, E5) = **intégration / mode rôle**, pas une 2ᵉ copie du code. ## Proposition de milestone | Champ | Valeur | |-------|--------| | Titre | **`0.2.0`** (rouvert) | | Description | Quotidien parent / AM — TdB 3 colonnes, cartes, blog, messagerie | | Label | `v0.2.0` | ## Mapping Gitea | Id | Issue | Titre | |----|-------|-------| | Epic | [#165](https://git.ptits-pas.fr/jmartin/petitspas/issues/165) | Epic quotidien | | A1 | [#166](https://git.ptits-pas.fr/jmartin/petitspas/issues/166) | [Front] Coquille TdB parent | | A2 | [#167](https://git.ptits-pas.fr/jmartin/petitspas/issues/167) | [Front] Couple enfant–nounou | | A3 | [#168](https://git.ptits-pas.fr/jmartin/petitspas/issues/168) | [Backend] API couples parent | | B1 | [#169](https://git.ptits-pas.fr/jmartin/petitspas/issues/169) | [Front] Coquille TdB AM | | B2 | [#170](https://git.ptits-pas.fr/jmartin/petitspas/issues/170) | [Front] Couple enfant–parent(s) | | B3 | [#171](https://git.ptits-pas.fr/jmartin/petitspas/issues/171) | [Backend] API enfants AM | | C1 | [#172](https://git.ptits-pas.fr/jmartin/petitspas/issues/172) | [Backend] API cartes | | C2 | [#173](https://git.ptits-pas.fr/jmartin/petitspas/issues/173) | [Front] Cartes parent | | C3 | [#174](https://git.ptits-pas.fr/jmartin/petitspas/issues/174) | [Front] Cartes AM | | C4 | [#175](https://git.ptits-pas.fr/jmartin/petitspas/issues/175) | [Front] Déclarer absence | | C5 | [#176](https://git.ptits-pas.fr/jmartin/petitspas/issues/176) | [Front] Formulaires AM cartes | | D1 | [#177](https://git.ptits-pas.fr/jmartin/petitspas/issues/177) | [Backend] API blog | | D2 | [#178](https://git.ptits-pas.fr/jmartin/petitspas/issues/178) | [Front] Blog parent | | D3 | [#179](https://git.ptits-pas.fr/jmartin/petitspas/issues/179) | [Front] Blog AM | | D4 | [#180](https://git.ptits-pas.fr/jmartin/petitspas/issues/180) | [Front] Blog gestionnaire | | E1 | [#181](https://git.ptits-pas.fr/jmartin/petitspas/issues/181) | [Backend] Socle messagerie | | E2 | [#182](https://git.ptits-pas.fr/jmartin/petitspas/issues/182) | [Backend] Mess. AM | | E3 | [#183](https://git.ptits-pas.fr/jmartin/petitspas/issues/183) | [Backend] Mess. RPE | | E4 | [#184](https://git.ptits-pas.fr/jmartin/petitspas/issues/184) | [Front] Messagerie parent | | E5 | [#185](https://git.ptits-pas.fr/jmartin/petitspas/issues/185) | [Front] Messagerie AM | | E6 | [#186](https://git.ptits-pas.fr/jmartin/petitspas/issues/186) | [Front] Mess. RPE gestionnaire | | F1 | [#187](https://git.ptits-pas.fr/jmartin/petitspas/issues/187) | [Front] Stubs Agenda / Contrat | | F2 | [#188](https://git.ptits-pas.fr/jmartin/petitspas/issues/188) | [Front] Swipe mobile | | G1 | [#189](https://git.ptits-pas.fr/jmartin/petitspas/issues/189) | [Backend] Seeds quotidien | --- ## Epic A — Coquille TdB parent ### A1 — [Front] Coquille TdB parent 3 colonnes + bandeau → [#166](https://git.ptits-pas.fr/jmartin/petitspas/issues/166) Bandeau TdB / Agenda / Contrat + menu user ; corps en 3 colonnes (cartes | blog | messagerie) ; fond papier / pastel. **Livrer la coquille comme widget/layout réutilisable** (l’AM B1 s’en branche). Remplace / refactor `ParentDashboardScreen` + `dashbord_parent/`. ### A2 — [Front] Sélecteur couple enfant–nounou → [#167](https://git.ptits-pas.fr/jmartin/petitspas/issues/167) Composant **paramétrable** (mode parent : enfant|nounou). Dropdown si plusieurs gardes ; informatif si une seule. B2 = même widget en mode AM. ### A3 — [Back] API contexte de garde actif (couples parent) Endpoint(s) listant les couples enfant–AM du parent connecté + couple « courant » (persistance session / préférence). Données mini : ids, noms, photos. --- ## Epic B — Coquille TdB AM (miroir) ### B1 — [Front] Coquille TdB AM 3 colonnes + bandeau → [#169](https://git.ptits-pas.fr/jmartin/petitspas/issues/169) **Réutilise** la coquille d’A1/#166 ; point de départ `am_dashboard_screen.dart`. ### B2 — [Front] Sélecteur couple enfant–parent(s) → [#170](https://git.ptits-pas.fr/jmartin/petitspas/issues/170) **Même widget** qu’A2 en mode AM : gauche photo enfant ; droite parent1+parent2 empilés ou un parent centré. ### B3 — [Back] API contexte enfants accueillis (AM) Liste des enfants / foyers pour l’AM + contexte courant (symétrique A3). --- ## Epic C — Absences + Cartes (file d’attention) **Séparation :** back **`absences_garde`** = vérité métier (périodes / placement) ; module **Cartes** = collecte / bulles / workflow. Annulation = DELETE. `expire_at` dès le modèle. ### Back (ordre) | Étape | Contenu | |-------|---------| | BDD | Table `absences_garde` + drop `evenements` | | API | CRUD + **GET liste** (`placementId` \| tous les placements du user) | | Cartes SYSTEM | Module `cards/` types S1–S3 (sans sondages V1) | | Realtime | WS/SSE bulles → **SSE** `GET /cards/stream` (#195) | | Purge TTL | Job `expire_at` / `purge_at` | ### Front (après API — hors chantier back immédiat) | Ticket | Contenu | |--------|---------| | Feed parent / AM | File d’attention bulles (widget partagé) | | Modale « Ajouter une bulle » | Générique + absence parent / congé·arrêt AM | | Agenda | Consommer GET liste (lignes) | ### Hors V1 cartes Sondages / catalogue admin OPTIONNEL / sortie riche / desktop 2 panneaux (évolution séparée). --- ## Epic D — Blog ### D1 — [Back] Modèle + API blog (posts + médias) Posts par auteur AM ou gestionnaire (RPE) ; texte + photos ; ciblage enfants (AM) / audience (RPE) ; fil visible parents (et AM selon règles). Sync temps réel ou polling acceptable V1. ### D2 — [Front] Colonne Blog parent (défaut) Fil de posts ; auteur **distinct** AM vs RPE ; miniatures ; pas de bouton « Écrire un post » parent en V1 (reporté). ### D3 — [Front] Colonne Blog AM — lecture + écrire un post Composer texte + photos + sélection enfants concernés ; publication. ### D4 — [Front] Publication blog gestionnaire (point d’entrée staff) UI minimale côté dashboard gestionnaire (ou réutilisation) pour publier une annonce RPE visible sur les TdB parent/AM. --- ## Epic E — Messagerie ### E1 — [Back] Socle messagerie (choix lib / protocole) + API Évaluer brique existante (style chat WhatsApp : texte, emoji, images). Conversations, participants, pièces jointes images. Temps réel (WS ou équivalent) souhaité pour l’effet multi-écrans. ### E2 — [Back] Mess. AM — conversation foyer ↔ AM Une conversation par couple/foyer ; **les deux parents** voient le **même** fil. Pas de masquage V1. ### E3 — [Back] Mess. RPE — privée + ajout de participants Fil 1↔1 par défaut (parent↔RPE ou AM↔RPE) ; possibilité d’**ajouter** 2ᵉ parent / AM / parent pour médiation. ### E4 — [Front] Colonne messagerie parent (onglets Mess. AM | Mess. RPE) UI chat + saisie + PJ ; défaut = Mess. AM. ### E5 — [Front] Colonne messagerie AM (onglets équivalents) Miroir parent ; Mess. AM = foyer courant ; Mess. RPE = canal relais. ### E6 — [Front] Mess. RPE côté gestionnaire (entrée minimale) Liste / réponse aux fils RPE + ajout de participants pour médiation. --- ## Epic F — Navigation & mobile (socle) ### F1 — [Front] Navigation Agenda / Contrat (stubs ou routes) Entrées bandeau : pages **placeholder** ou squelette (Agenda / Contrat pleine page) pour ne pas bloquer le TdB — contenu métier = jalons suivants. ### F2 — [Front] Adaptation mobile — swipe 3 panneaux Sur téléphone : swipe Blog ↔ Cartes ↔ Messagerie ; navigation TdB/Agenda/Contrat hors swipe. Contrat peut rester limité (« mieux sur PC ») en V1 si besoin. --- ## Epic G — Données de démo / peuplement ### G1 — [Back/Outillage] Jeu de données peuplé quotidien Scripts / seeds : foyer 2 parents, AM, enfant(s), quelques cartes, posts blog, fils messagerie — pour enchaîner une démo multi-écrans sans saisie manuelle lourde. --- ## Hors découpage (volontairement) | Sujet | Motif | |-------|--------| | Page Contrat (Pajemploi, CP, avenants) | Module valué — jalon dédié | | Agenda calendrier riche | Entrée bandeau OK en stub ; métier plus tard | | Notifs CDC (contrat/paiement/dossier) | Plus tard | | Masquage messages / privé parent↔AM | Plus tard | | Parent auteur de posts blog | Hypothétique / plus tard | | Photo parent à l’inscription | Non ; éventuel menu profil plus tard | --- ## Ordre de réalisation suggéré 1. **A1 → A2 → A3** (coquille + contexte parent) — *fait* 2. **BDD absences → API absences** puis **Cartes SYSTEM** (congés/absences/arrêt) 3. **Feed / modale bulles** (front) + agenda lignes 4. **D1 → D2 / D3** (blog) 5. **E1 → E2 → E4** (messagerie AM) 6. **B1 → B2 → B3** + miroirs AM 7. Realtime / purge TTL / RPE / F/G Desktop 2 panneaux (cartes prioritaires sur blog) = **évolution hors 0.2.0**. --- ## Validation Backlog créé sur Gitea (**#165–#189**, milestone `0.2.0`). **Implémentation code** : seulement après relecture PO / ajustements éventuels sur le découpage.