Couleur = mapping front (type_code). Spec §32 / mini-spec bulles. Rebase sur develop (#205). Co-authored-by: Cursor <cursoragent@cursor.com>
6.9 KiB
Mini-spec · Bulles / file d’attention (#173)
Front · octobre 2026 — alignement product / API.
1. Contexte / objectif
Les bulles (cartes) sont la file d’attention du quotidien parent / AM : décisions et infos proches (congés, arrêt maladie AM, absences, soins / bobos enfant…).
Différence fondamentale avec le blog :
les cartes de ce fil sont des événements d’agenda (période, placement, historique métier loggé).
Le blog = récit / mémoire narrative du jour (photos, texte) — pas une ligne d’agenda.
Les cartes restent une mémoire courte de file (purge_at sur la bulle) ; la source de vérité agenda reste le back métier.
Table agenda : evenements_agenda (ex-absences_garde, #205 fait) — conteneur ouvert (absences, congés, soins, école, mairie, sorties…). Les bulles notifient ; l’agenda historise.
Voir aussi 31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md.
Cette note formalise :
- Ce qui est en place côté front (#173).
- Le contrat API (sans couleur).
- La palette UI (front only, dérivée du
type_code). - La nouvelle famille soins / bobo enfant (rose) — AM → parents.
- Idées futures.
2. Contrat API
Endpoint principal : GET /api/v1/cards (filtre couple / placement).
| Champ | Rôle UI |
|---|---|
type_code |
Layout + libellé + couleur / icône (mapping front) |
titre |
Fallback si type_code inconnu |
statut |
ouverte · refusee · traitee |
response_mode |
none · ack · accept_refuse |
is_creator |
Masque les boutons réponse pour le créateur |
payload.date_debut / date_fin |
Période (agenda) |
payload.motif |
Texte libre / détail |
last_refuse_comment |
Si refusee |
id_absence |
Lien métier agenda (si applicable) |
purge_at |
Péremption de la bulle dans la file |
Pas de champ couleur dans l’API.
La teinte pastel est 100 % front : table de mapping type_code → asset (card_*_h.png). Le back ne gère pas la charte graphique.
Règle front : le destinataire peut répondre si !is_creator && statut == ouverte && response_mode != none.
3. Évolutions front déjà livrées (#173)
3.1 Feed
- Widget partagé
CartesFeed(parent + AM). - Fond via widget
Carte(9-slice horizontal) selon mapping local. - Actions via modales accepter / refuser / ack.
- Libellés UI :
conge_am→ « Demande de congés »arret_maladie_am→ « Arrêt maladie »absence_enfant(+_modif) → « Notification d’absence »
3.2 Carte congés (conge_am)
| Élément | Comportement |
|---|---|
| Fond | Aqua (mapping front) |
| Encre | Pétrole #315F63 / dates #4A7276 |
| Icône | Valise |
| Période | « Du … au … » + calendrier |
| Actions | Pilules ✓ / ✕ si accept_refuse |
| Lien | « Ouvrir dans l’agenda ↗ » |
| Opacité | Atténuée si traitee (sauf règle arrêt ci-dessous) |
3.3 Arrêt maladie AM (arret_maladie_am)
- Reste visible / opaque tant que
date_fin(jour inclus) n’est pas passée, même sitraitee. - Fond bleu (mapping front).
3.4 Assets
Teintes UI : red · pink · peach · lime · lavender · green · blue · aqua.
Clé = choix front, pas une valeur API.
4. Palette UI (front only — dérivée du type_code)
| Couleur UI | Famille | Types |
|---|---|---|
aqua |
Congés AM | conge_am |
blue |
Arrêt maladie AM | arret_maladie_am |
peach |
Absence enfant / info pratique | absence_enfant, absence_enfant_modif |
pink |
Soins / bobo / problème enfant (AM → parents) | soin_enfant (nouveau — voir §5) |
lavender |
Admin / divers | futurs types admin |
Principes
- Couleur = famille visuelle (lisible sans tout lire).
- Icône précise l’événement (surtout sur rose : thermomètre, pansement, flacon…).
- Rose = doux / rassurant, pas une alerte médicale forte.
- Congés ≠ lavande (trop « admin »).
5. Nouvelle bulle rose — soins / bobo enfant (AM → parents)
Intention produit
La nounou signale un événement concernant l’enfant (maladie légère, bobo, crème, température, souci du jour…) vers les parents.
Pourquoi pas seulement la messagerie ?
- C’est loggé dans la file d’attention.
- C’est un événement d’agenda (période / jour, placement, historique).
- Les parents peuvent acquitter (
ack) sans noyer le chat.
Proposition V1 (à brancher ultérieurement)
type_code |
soin_enfant (nom exact à figer) |
| Émetteur | AM |
| Destinataires | parents du couple / placement |
response_mode |
ack |
| Couleur UI | pink |
| Back métier | ligne agenda liée (même esprit que absences_garde : période + placement + motif) ; la bulle = collecte / notification |
| Payload | date_debut / date_fin (+ motif / sous-type optionnel : temperature, bobo, medicament…) |
Hors scope immédiat #173 : implémentation complète ; cette section fige l’intention pour le contrat types + UI.
6. Idées futures (hors scope)
| Famille | Couleur UI | Exemples | response_mode |
|---|---|---|---|
| Soins (détail) | pink |
soin_temperature, soin_medicament, soin_bobo — ou sous-types dans payload |
ack |
| Sortie | peach / lavender |
sortie_a_valider |
accept_refuse |
| Admin | lavender |
info_admin, document_a_fournir |
ack / none |
Variante soins : un seul fond rose ; l’icône / sous-type change.
7. Comportements métier à ne pas casser
- Créateur : pas de boutons réponse ; éventuel « En attente de réponse ».
- Refus : afficher
last_refuse_comment. - Congé :
accept_refusecôté destinataire. - Absence enfant : info / ack — pas de veto AM en V1.
- File courte :
purge_at; l’agenda conserve l’historique métier.
8. Fichiers front de référence
frontend/lib/models/carte_bulle.dart— mapping type → libellé / icône / fondfrontend/lib/widgets/quotidien/cartes_feed.dartfrontend/lib/models/card_assets.dart- Assets :
frontend/assets/cards/,valise.png,btn_*_pilule.png
9. Recettes
- API cartes sans champ
couleur(ni feed ni/types). - Front mappe
conge_am→ aqua,arret_maladie_am→ blue,absence_*→ peach. - Accept / refuse congé OK.
- Arrêt traité + période en cours → reste visible.
- Filtre couple / placement.
- (Plus tard)
soin_enfantrose AM → parents + ligne agenda.
10. Références
- Ticket front : #173
- Module cartes : #194
- Quotidien :
docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md - Décision projet :
docs/24_DECISIONS-PROJET.md§32 - Maquette congés :
ressources/bulle_congés.jpg