docs: Epic C — absences back ≠ cartes (§32, découpage, mini-spec).

Décision 32, recentrage Epic C, workflows congés/absences/arrêt.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-24 11:13:15 +02:00
co-authored by Cursor
parent 8d8627cf38
commit d1d1c3e935
3 changed files with 62 additions and 31 deletions
+18 -4
View File
@@ -1,6 +1,6 @@
# 📋 Décisions Projet - P'titsPas
**Version** : 1.3
**Version** : 1.4
**Date** : 24 Septembre 2026
**Auteur** : Équipe PtitsPas
@@ -570,6 +570,19 @@ POST /repos/jmartin/petitspas/pulls/{index}/merge
---
### 32. Module Absences + Cartes (séparation back / collecte)
**Décision** : ✅ **Back `absences_garde` = vérité métier** ; **Cartes = file dattention / collecte** (plugin isolé). Types SYSTEM (absence, congé, arrêt) indéboulonnables ; types OPTIONNELS (sondages…) plus tard. Annulation = DELETE. `expire_at` dès V1.
**Justification** :
- Premier vrai module dinteraction multi-acteurs
- Évite de stocker lhistorique congés dans des bulles éphémères
- Portabilité / généricité des cartes sans coupler le métier garde
**Flux V1** : BDD absences → API liste/CRUD → module Cartes SYSTEM → front bulles (séparé).
---
## 📋 Résumé des décisions critiques
| # | Décision | Statut | Impact |
@@ -590,6 +603,7 @@ POST /repos/jmartin/petitspas/pulls/{index}/merge
| 14 | Migration données | ❌ Rejeté | N/A |
| 15 | Doc utilisateur | ⏸️ Phase 2 | Formation |
| 31 | Logs Winston | ✅ Phase 1 | Monitoring |
| 32 | Absences back + Cartes collecte | ✅ 0.2.0 | Métier / archi |
| 5bis | Familles recomposées — 2ᵉ compte v1.0.0 | ✅ v1.0.0 | Métier / dossier |
---
@@ -601,11 +615,11 @@ POST /repos/jmartin/petitspas/pulls/{index}/merge
| 25/11/2025 | 1.0 | Création du document - Toutes les décisions initiales |
| 09/02/2026 | 1.1 | Configuration initiale : un seul panneau Paramètres (3 sections) dans le dashboard, plus de Setup Wizard dédié ; navigation bloquée jusqu'à sauvegarde |
| 16/06/2026 | 1.2 | Décision 5bis — familles recomposées, contournement v1.0.0 ; lien doc [28](./28_EVOLUTION-FAMILLE-ET-RESPONSABLES.md) |
| 16/06/2026 | 1.3 | Précision 5bis — cible post-1.0.0 : parcours gestionnaire § 7.5 (#139), visibilité par enfant |
| 24/09/2026 | 1.4 | Décision 32 — Absences (`absences_garde`) ≠ Cartes ; Epic C recentré ; drop `evenements` |
---
**Dernière mise à jour** : 16 Juin 2026
**Version** : 1.2
**Dernière mise à jour** : 24 Septembre 2026
**Version** : 1.4
**Statut** : ✅ Document validé
+31 -20
View File
@@ -1,9 +1,9 @@
# Découpage tickets — Quotidien parent / AM
> **Statut :** backlog Gitea créé (**milestone `0.2.0`**, **#165#189**) — *création anticipée avant validation PO* ; **descriptions enrichies** ensuite à partir de la mini-spec / découpage.
> **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)
> **Règle :** tickets **front** / **back** séparés · widgets partagés parent↔AM · **pas dimplé code** tant que le PO na pas validé le backlog.
> **Décision :** [24_DECISIONS-PROJET.md](./24_DECISIONS-PROJET.md) §32 (Cartes ≠ back Absences).
## Intention produit (rappel)
@@ -96,22 +96,31 @@ Liste des enfants / foyers pour lAM + contexte courant (symétrique A3).
---
## Epic C — Cartes (file du quotidien)
## Epic C — Absences + Cartes (file dattention)
### C1 — [Back] Modèle + API cartes / événements de garde
Types V1 : absence enfant, congé AM, maladie AM (« arrêt »), sortie à valider. CRUD / transitions de statut ; liaison couple / agenda (hook minimal). Règles : absence enfant sans veto AM ; congé AM accepter/refuser (**1 parent suffit**) ; maladie AM accusé parent ; sortie **1 parent suffit**. Aucun doc médical stocké.
**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.
### C2 — [Front] Flux de cartes colonne gauche (parent)
Liste scroll pastel (palette `assets/cards/` — 7 couleurs) ; ouverture détail ; actions valider / refuser / accusé selon type. Bouton **Déclarer une absence** (+ autres actions TBD plus tard).
### Back (ordre)
### C3 — [Front] Flux de cartes colonne gauche (AM)
Miroir : création congé / maladie / sortie ; lecture absences enfants du jour / à venir.
| Étape | Contenu |
|-------|---------|
| BDD | Table `absences_garde` + drop `evenements` |
| API | CRUD + **GET liste** (`placementId` \| tous les placements du user) |
| Cartes SYSTEM | Module `cards/` types S1S3 (sans sondages V1) |
| Realtime | WS/SSE bulles |
| Purge TTL | Job `expire_at` / `purge_at` |
### C4 — [Front] Formulaire déclarer une absence (parent)
Saisie période (+ motif léger si besoin) → crée une carte côté AM.
### Front (après API — hors chantier back immédiat)
### C5 — [Front] Formulaires AM congé / maladie / sortie
Création des cartes correspondantes + ciblage enfants si sortie.
| Ticket | Contenu |
|--------|---------|
| Feed parent / AM | File dattention 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).
---
@@ -185,13 +194,15 @@ Scripts / seeds : foyer 2 parents, AM, enfant(s), quelques cartes, posts blog, f
## Ordre de réalisation suggéré
1. **A1 → A2 → A3** (coquille + contexte parent)
2. **C1 → C2 / C4** (premières cartes utiles)
3. **D1 → D2 / D3** (blog central)
4. **E1 → E2 → E4** (messagerie AM)
5. **B1 → B2 → B3** + miroirs C3/C5/D3/E5 (AM)
6. **E3 / E5 / E6 / D4** (RPE)
7. **F1 → F2** + **G1** (nav, mobile, seeds)
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**.
---
+13 -7
View File
@@ -61,14 +61,20 @@ Bandeau : **TdB** · **Agenda** · **Contrat** · menu user (recherche AM, param
| **Mess. AM** | Chat foyer ↔ AM (style WhatsApp : texte, emoji, images) |
| **Mess. RPE** | Privée par défaut ; ajout de participants pour médiation / conflit |
## 5. Règles métier V1
## 5. Règles métier V1 (absences / congés)
| Type | Qui initie | Validation |
|------|------------|------------|
| Absence enfant | Parent | Pas de veto AM |
| Congé AM | AM | **1 parent** accepte ou refuse |
| Maladie AM | AM | Parent accuse réception (pas de doc médical in-app) |
| Sortie | AM / RPE | **1 parent** suffit (présence / absence) ; explication aussi via blog |
| Type | Qui initie | Validation / effet |
|------|------------|-------------------|
| Absence enfant | Parent | Pas de veto AM ; période **acceptée** tout de suite ; bulle info AM |
| Congé AM | AM | **1 parent** accepte **ou** refuse (+ motivation) → bounce AM (modif/renvoi ou DELETE) |
| Modification congé AM déjà accepté | AM | Même `id` absence ; re-validation parents ; dates actives = anciennes tant quen attente |
| Modification absence enfant | Parent | Update immédiat + bulle **ack** AM (OK) |
| Maladie AM | AM | Parent **ack** (« bien reçu ») ; **aucun** doc médical |
| Sortie / sondage | — | **Plus tard** (types optionnels) |
**Stockage :** table `absences_garde` (1 ligne = période, `id_placement`, `expire_at`). Les **cartes** collectent ; elles ne sont pas la source de vérité. Annulation = DELETE.
**Péremption cartes :** mémoire courte (`retention_days` / `purge_at`) — pas un historique de vie (≠ messagerie).
- Mess. AM : les **2 parents** voient le **même** fil — **pas** de masquage V1
- Blog auteurs V1 : **AM** + **gestionnaire (RPE)** — parent auteur = plus tard