Files
petitspas/docs/32_MINI-SPEC-BULLES-CARTES.md
T
jmartinandCursor 72982f792b docs+fix(#173): API cards sans couleur ; alignement evenements_agenda
Couleur = mapping front (type_code). Spec §32 / mini-spec bulles.
Rebase sur develop (#205).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-01 17:11:39 +02:00

6.9 KiB
Raw Blame History

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 :

  1. Ce qui est en place côté front (#173).
  2. Le contrat API (sans couleur).
  3. La palette UI (front only, dérivée du type_code).
  4. La nouvelle famille soins / bobo enfant (rose) — AM → parents.
  5. 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 si traitee.
  • 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_refuse cô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 / fond
  • frontend/lib/widgets/quotidien/cartes_feed.dart
  • frontend/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_enfant rose 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