Files
petitspas/issues.json
T

1 line
107 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[{"id":304,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/196","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/196","number":196,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Backend] Purge TTL absences en attente/refusées + cartes expirées","body":"## Contexte\n\nEpic [#165](https://git.ptits-pas.fr/jmartin/petitspas/issues/165). \nÉviter de polluer la base : `expire_at` / `purge_at` déjà prévus au modèle.\n\n## Règles indicatives (configurables)\n\n- `en_attente` ≈ **15 j** → DELETE absence + cartes liées\n- `refuse` ≈ **7 j** → DELETE si AM n’a pas repris\n- Cartes « traitées » → DELETE après `retention_days` (absence `accepte` **conservée**)\n\n## À faire\n\n- Job scheduler (cron) de purge\n- (Optionnel / ticket lié) relances push parents avant expiration\n\n## Dépend de\n\n- BDD + API absences + module Cartes (colonnes présentes)\n","ref":"","assets":[],"labels":[{"id":33,"name":"backend","exclusive":false,"is_archived":false,"color":"2ecc71","description":"Backend NestJS","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/33"},{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-24T09:02:35Z","updated_at":"2026-09-24T09:02:53Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":0},{"id":303,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/195","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/195","number":195,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Backend] Realtime module Cartes (WS/SSE)","body":"## Contexte\n\nEpic [#165](https://git.ptits-pas.fr/jmartin/petitspas/issues/165). \nDiffusion quasi-instantanée des bulles (création congé → parents ; refus → AM ; agrégats plus tard).\n\n## À faire\n\n- Gateway dans le module Cartes (WS ou SSE)\n- Auth JWT ; rooms user / card\n- Events : `card.created`, `card.updated`, `response.added`, …\n\n## Dépend de\n\n- Module Cartes SYSTEM\n\n## Hors scope\n\n- Push mobile / relances (autre ticket)\n","ref":"","assets":[],"labels":[{"id":59,"name":"api","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/59"},{"id":33,"name":"backend","exclusive":false,"is_archived":false,"color":"2ecc71","description":"Backend NestJS","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/33"},{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-24T09:02:35Z","updated_at":"2026-09-24T09:02:53Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":0},{"id":300,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/192","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/192","number":192,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front][Évolution] Desktop — superposer cartes et blog (2 panneaux, priorité cartes)","body":"## Contexte\n\nSur desktop, la colonne **cartes / bulles** risque d être souvent peu remplie (usage ponctuel : congés, absences, validations). Blog et messagerie sont plus continus.\n\n## Proposition (évolution — hors 0.2.0)\n\nLayout desktop en **2 panneaux** :\n- un côté : **messagerie**\n- l autre : **cartes OU blog** (superposés)\n - s il reste des bulles actionnables / non purgées → **priorité cartes**\n - sinon → **blog** seul\n\n**Mobile** : conserver les **3 slides** (cartes | blog | messagerie) comme maquetté actuellement.\n\n## Hors scope immédiat\n\nNe pas toucher à la coquille 3 colonnes livrée en 0.2.0 / Epic A. Ce ticket est un **backlog futur** ; s il devient obsolète → fermer.\n\n## Labels\n\nenhancement, frontend, ux — **pas** de milestone 0.2.0, **pas** de label v0.2.0.\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":51,"name":"ux","exclusive":false,"is_archived":false,"color":"e91e63","description":"UX/UI","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/51"}],"milestone":null,"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-24T08:59:29Z","updated_at":"2026-09-24T09:02:53Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":0},{"id":297,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/189","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/189","number":189,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Backend] Jeu de données peuplé quotidien (seeds)","body":"## Contexte (G1)\nPour démontrer la sync multi-écrans sans saisie manuelle lourde.\n\n## À faire\nScripts / seeds : un foyer avec **2 parents**, une AM, un ou plusieurs enfants, rattachements ; quelques **cartes** (absence, congé à valider, sortie) ; **posts blog** AM et RPE ; fils **Mess. AM** et éventuellement RPE. Documenter comptes / mots de passe de test (ou lier `docs/test-data/`).\n\n## Done when\nAvec les seeds, on peut enchaîner les critères démo de l’epic #165 / mini-spec §7 sur 2 supports.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":33,"name":"backend","exclusive":false,"is_archived":false,"color":"2ecc71","description":"Backend NestJS","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/33"},{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:54Z","updated_at":"2026-09-23T15:11:32Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":1},{"id":296,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/188","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/188","number":188,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Adaptation mobile — swipe 3 panneaux","body":"## Contexte (F2)\nAnticipation mobile : les 3 colonnes PC deviennent 3 panneaux swipables.\n\n## À faire\nSur téléphone : swipe entre **Blog** (défaut proposé) ↔ **Cartes** (+ couple) ↔ **Messagerie**. La navigation TdB / Agenda / Contrat reste hors swipe (boutons / menu). Si Contrat est trop lourd sur mobile, limitation V1 acceptable (« mieux sur ordinateur ») — documenter le choix UI.\n\n## Done when\nSur viewport étroit, on bascule les 3 panneaux au doigt / geste sans perdre le bandeau métier.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":51,"name":"ux","exclusive":false,"is_archived":false,"color":"e91e63","description":"UX/UI","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/51"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:53Z","updated_at":"2026-09-23T15:11:32Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":1},{"id":295,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/187","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/187","number":187,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Navigation Agenda / Contrat (stubs)","body":"## Contexte (F1)\nLe bandeau expose Agenda et Contrat, mais le **contenu riche** est hors jalon 0.2.0 (Contrat = module valué plus tard ; Agenda calendrier = plus tard). Il faut quand même des cibles de navigation.\n\n## À faire\nRoutes / écrans **placeholder** (ou squelette) Agenda et Contrat en pleine page, accessibles depuis le bandeau, message clair « à venir » / squelette. Ne pas implémenter Pajemploi, CP, grille calendrier riche ici.\n\n## Done when\nClic Agenda et Contrat depuis le TdB ouvre une page dédiée sans casser la nav, sans faux air de fonctionnalité terminée.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:53Z","updated_at":"2026-09-23T21:40:40Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":1},{"id":294,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/186","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/186","number":186,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Mess. RPE côté gestionnaire (entrée minimale)","body":"## Contexte (E6)\nEntrée gestionnaire pour la médiation RPE.\n\n## À faire\nUI minimale staff : liste des fils RPE, réponse, **ajout de participants**. Réutiliser le widget messagerie autant que possible.\n\n## Done when\nLe gestionnaire répond et invite parent/AM dans un fil de médiation.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":55,"name":"gestionnaire","exclusive":false,"is_archived":false,"color":"ff9800","description":"Gestionnaire","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/55"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:52Z","updated_at":"2026-09-23T15:11:31Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":2},{"id":293,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/185","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/185","number":185,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Colonne messagerie AM (onglets équivalents)","body":"## Contexte (E5)\nColonne messagerie AM.\n\n## À faire\n**Réutiliser** le widget #184. Mess. AM = foyer/couple courant ; Mess. RPE = canal relais. Pas de second chat recopié.\n\n## Done when\nL’AM échange avec le foyer courant et accède au canal RPE dans la même UI.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:52Z","updated_at":"2026-09-23T15:11:31Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":2},{"id":292,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/184","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/184","number":184,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Colonne messagerie parent (Mess. AM | Mess. RPE)","body":"## Contexte (E4)\nColonne droite TdB parent.\n\n## À faire\nWidget **messagerie** réutilisable : onglets **Mess. AM** (sélectionné par défaut) | **Mess. RPE** ; zone de conversation ; champ saisie + envoi ; pièces jointes images (usage conversationnel, pas un substitut blog). Branché couple actif + APIs #182/#183.\n\n## Widgets partagés\nMême brique pour #185 et #186.\n\n## Done when\nLe parent chat en Mess. AM et peut basculer vers Mess. RPE sans quitter la colonne.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":51,"name":"ux","exclusive":false,"is_archived":false,"color":"e91e63","description":"UX/UI","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/51"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:51Z","updated_at":"2026-09-23T21:40:40Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":2},{"id":291,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/183","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/183","number":183,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Backend] Mess. RPE — privée + ajout de participants","body":"## Contexte (E3)\nMessagerie RPE = médiation / conflit, **pas** le canal du quotidien (l’UI par défaut reste Mess. AM).\n\n## À faire\nFil **privé 1↔1** par défaut (ex. parent↔gestionnaire ou AM↔gestionnaire). L’initiateur peut **ajouter** des participants (2ᵉ parent, AM, parent…) pour résoudre un problème. Droits et invitations clairs côté API.\n\n## Done when\nOn ouvre un fil RPE privé, on ajoute un tiers, tous les participants voient le fil élargi.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":59,"name":"api","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/59"},{"id":33,"name":"backend","exclusive":false,"is_archived":false,"color":"2ecc71","description":"Backend NestJS","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/33"},{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":55,"name":"gestionnaire","exclusive":false,"is_archived":false,"color":"ff9800","description":"Gestionnaire","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/55"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:51Z","updated_at":"2026-09-23T15:11:30Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":1},{"id":290,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/182","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/182","number":182,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Backend] Mess. AM — conversation foyer ↔ AM","body":"## Contexte (E2)\nCanal quotidien foyer ↔ assistante maternelle.\n\n## À faire\nUne conversation **par couple/foyer** liée au contexte de garde. Les **deux parents** déclarés voient **exactement le même** fil (pas de masquage V1). Brancher sur le socle #181.\n\n## Done when\nParent1, parent2 et AM partagent la même conversation ; un message d’un côté apparaît de l’autre.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":59,"name":"api","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/59"},{"id":33,"name":"backend","exclusive":false,"is_archived":false,"color":"2ecc71","description":"Backend NestJS","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/33"},{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:50Z","updated_at":"2026-09-23T15:11:30Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":1},{"id":289,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/181","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/181","number":181,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Backend] Socle messagerie (lib / protocole) + API","body":"## Contexte (E1)\nSocle technique messagerie avant les cas d’usage AM/RPE. Style attendu type WhatsApp (texte, emoji, images) via **brique existante** si pertinent — documenter le choix.\n\n## À faire\nChoisir lib/protocole (noter ADR court dans le ticket ou `docs/24_…`). Implémenter conversations, participants, messages, PJ images. Prévoir **temps réel** (WebSocket ou équivalent) pour l’effet multi-écrans ; polling documenté OK en fallback V1.\n\n## Hors scope\nMasquage de messages / fils « privés » entre un parent et l’AM (plus tard).\n\n## Done when\nDécision technique écrite + API de base permettant d’envoyer/recevoir un message avec image entre deux comptes de test.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":59,"name":"api","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/59"},{"id":33,"name":"backend","exclusive":false,"is_archived":false,"color":"2ecc71","description":"Backend NestJS","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/33"},{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:50Z","updated_at":"2026-09-23T15:11:30Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":1},{"id":288,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/180","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/180","number":180,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Publication blog gestionnaire (entrée staff)","body":"## Contexte (D4)\nLe gestionnaire RPE publie des actus / annonces institutionnelles.\n\n## À faire\nPoint d’entrée **minimal** dans le dashboard staff (gestionnaire) pour composer une annonce (réutiliser le composeur blog). Publication visible sur les TdB parent/AM concernés. Pas besoin d’un CMS complet V1.\n\n## Done when\nUn gestionnaire publie ; le post apparaît avec badge/auteur RPE distinct côté parent/AM.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":55,"name":"gestionnaire","exclusive":false,"is_archived":false,"color":"ff9800","description":"Gestionnaire","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/55"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:49Z","updated_at":"2026-09-23T15:11:29Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":2},{"id":287,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/179","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/179","number":179,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Colonne Blog AM — lecture + écrire un post","body":"## Contexte (D3)\nCôté AM : lire le fil et publier l’activité du jour (typiquement le soir, ~5 min, pas d’obligation quotidienne).\n\n## À faire\n**Réutiliser** le widget fil (#178). Ajouter le **composeur** partagé : texte + photos + **sélection des enfants concernés** (cocher/décocher) puis publier via #177.\n\n## Done when\nL’AM publie un post avec photo ; le parent le voit en colonne blog.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:49Z","updated_at":"2026-09-23T15:11:29Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":2},{"id":286,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/178","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/178","number":178,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Colonne Blog parent (affichage défaut)","body":"## Contexte (D2)\nColonne milieu du TdB parent : affichage **par défaut** à l’arrivée.\n\n## À faire\nWidget **fil blog** : cartes post avec auteur **visuellement distinct** AM vs RPE, titre/texte, miniatures photos. Pas de bouton « Écrire un post » pour le parent en V1 (reporté). Branché sur le couple actif. Look pastel maquette v4.\n\n## Widgets partagés\nBrique fil réutilisée par AM (#179) et staff (#180 pour la lecture/cible).\n\n## Done when\nLe parent ouvre le TdB sur le blog et lit les posts AM/RPE du contexte.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":51,"name":"ux","exclusive":false,"is_archived":false,"color":"e91e63","description":"UX/UI","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/51"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:48Z","updated_at":"2026-09-23T21:40:40Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":2},{"id":285,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/177","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/177","number":177,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Backend] Modèle + API blog (posts + médias)","body":"## Contexte (D1)\nLe blog est la **colonne centrale indispensable** (plus un module optionnel CDC §9). Canal distinct des cartes et de la messagerie.\n\n## À faire\nModèle posts + médias (photos) : auteurs **AM** et **gestionnaire (RPE)** en V1 (pas parent). Texte + pièces jointes images ; ciblage enfants pour un post AM ; audience / ciblage pour un post RPE. Fil consultable par les parents (et AM selon règles). Sync temps réel ou **polling** acceptable en V1.\n\n## Done when\nAPI permet créer/lister un fil filtré par contexte de garde, avec médias, sans coller ça dans la messagerie.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":59,"name":"api","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/59"},{"id":33,"name":"backend","exclusive":false,"is_archived":false,"color":"2ecc71","description":"Backend NestJS","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/33"},{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:48Z","updated_at":"2026-09-23T15:11:29Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":1},{"id":284,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/176","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/176","number":176,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Modale « Ajouter une bulle » — types AM (congé / arrêt)","body":"## Contexte (ex-C5, recentré)\n\nMême **modale générique** que le ticket parent : l’AM sélectionne **Congé** ou **Arrêt maladie** (pas de sortie/sondage dans ce ticket).\n\n## Dépend de\n\n- Modale générique (socle)\n- Module Cartes SYSTEM + API absences\n\n## À faire\n\n- Types dans la combo AM :\n - **Congé AM** : date début/fin → période `en_attente` + bulles parents + miroir AM ; `expire_at`\n - **Arrêt maladie AM** : date début/fin → flux **ack** parent (« bien reçu ») ; **aucun** upload médical\n- Modification depuis bulle « en attente » (avant accept parent) = réouvrir la modale / mêmes champs\n- Modification d’un congé **déjà accepté** = `operation=update` (même id absence, re-validation parents) — si le backend est prêt ; sinon stub + ticket follow-up\n- Sortie / autorisation / sondage = **hors ce ticket**\n\n## Done when\n\n- L’AM crée congé et arrêt depuis « Ajouter une bulle »\n- Les parents concernés voient les bulles à traiter\n- Pas de doc médical stocké\n\n### Réf.\n\n- Mini-spec § règles métier · workflows S2/S3\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:48Z","updated_at":"2026-09-24T09:04:29Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":2},{"id":283,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/175","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/175","number":175,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Modale générique « Ajouter une bulle » + absence parent","body":"## Contexte (ex-C4, élargi)\n\nEntrée unique de création : bouton **Ajouter une bulle** → **modale générique adaptative** (widget unique tous profils).\n\nV1 : au minimum le parcours **parent = déclarer une absence enfant** ; la combo « type de demande » est filtrée par rôle (prêt pour AM/gest plus tard).\n\n## Dépend de\n\n- API absences + (idéalement) module Cartes SYSTEM\n- Feed parent pour voir le résultat\n\n## À faire\n\n- Widget `CreateCardModal` (ou équivalent) :\n - combo **Type** en haut (options selon `emitter_roles` / profil)\n - corps **piloté par le type** (champs absences = date début/fin + motif optionnel)\n- Soumission parent absence :\n - écriture back absences (**acceptée** tout de suite, pas de veto AM)\n - diffusion bulle côté AM (+ miroir parent)\n- Libellé : **Déclarer une absence** (pas « soumettre congé »)\n- Couple / placement courant (#168)\n\n## Hors scope V1 de ce ticket\n\n- Champs sondage / date+heure événement (prévoir l’extensibilité du widget seulement)\n- Formulaire AM congé/arrêt → ticket formulaires AM (même modale, autres types)\n\n## Done when\n\n- Parent ouvre la modale, choisit absence, valide → période en base + bulles visibles\n- Le widget est clairement réutilisable pour d’autres types / rôles\n\n### Réf.\n\n- Mini-spec · plan mécanique cartes / absences\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:47Z","updated_at":"2026-09-24T09:04:29Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":2},{"id":282,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/174","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/174","number":174,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Feed bulles / cartes (AM) — réutilise widget parent","body":"## Contexte (ex-C3, recentré)\n\nMiroir AM du feed bulles — **même widget** que le feed parent, config rôle AM.\n\n## Dépend de\n\n- Feed parent (widget partagé)\n- Module Cartes SYSTEM + API absences\n\n## À faire\n\n- Brancher le feed sur le TdB AM (coquille 3 col. quand prête)\n- Rôle AM :\n - lecture absences enfant\n - bulles **miroir** congé / arrêt en attente (clic → modifier dates tant qu’aucun parent n’a accepté)\n - après **refus parent** : bulle en tête + motif ; modifier & renvoyer **ou** supprimer (DELETE)\n - ack sur « absence enfant modifiée » (OK → carte disparaît)\n- CTA **« Ajouter une bulle »** → même modale générique (types émis par l’AM : congé, arrêt)\n- Pas de 2ᵉ implémentation de liste\n\n## Done when\n\n- AM voit la file du couple / enfant courant avec les actions de son rôle\n- Cycle congé : create → attente → accept/refus → modif éventuelle fonctionne en UI\n\n### Réf.\n\n- Mini-spec · découpage quotidien\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":51,"name":"ux","exclusive":false,"is_archived":false,"color":"e91e63","description":"UX/UI","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/51"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:47Z","updated_at":"2026-09-24T09:04:29Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":3},{"id":281,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/173","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/173","number":173,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Feed bulles / cartes (parent) — file d’attention","body":"## Contexte (ex-C2, recentré)\n\nEpic Quotidien. Colonne gauche = **file d’attention** (bulles), pas un historique de vie ni une messagerie.\n\nV1 focalisé **absences / congés / arrêt**. Sondages / sorties riches = plus tard.\n\n## Dépend de\n\n- API absences (liste / métiers)\n- Module Cartes SYSTEM (backend)\n\n## À faire\n\n- Widget **feed bulles** réutilisable (pastel, palette `frontend/assets/cards/` uniquement — 7 teintes)\n- Affichage selon statut : à traiter / en attente / refusé / traité (historique court grisé)\n- Actions parent : accepter / refuser congé (+ **modale motivation** si refus) ; ack arrêt maladie ; lecture absences\n- **Miroir créateur** : si le parent a déclaré une absence, il voit aussi sa bulle de suivi\n- Tri : actionnables / refusés en tête ; traités en bas puis purge (`purge_at`)\n- CTA **« Ajouter une bulle »** → ouvre la modale générique (ticket formulaire / modale)\n- Temps réel : se brancher sur le ticket realtime quand dispo (polling acceptable en attendant)\n\n## Hors scope\n\n- Layout desktop 2 panneaux (évolution hors 0.2.0)\n- Catalogue types optionnels / sondages\n\n## Done when\n\n- Parent voit et traite les bulles du couple courant\n- Refus congé exige une motivation\n- Colonne peut être peu remplie : normal (file d’attention)\n\n### Réf.\n\n- Mini-spec `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":51,"name":"ux","exclusive":false,"is_archived":false,"color":"e91e63","description":"UX/UI","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/51"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:46Z","updated_at":"2026-09-24T09:04:29Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":3},{"id":279,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/171","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/171","number":171,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Backend] API contexte enfants accueillis (AM)","body":"## Contexte (B3)\nSymétrique de #168 pour l’assistante maternelle.\n\n## À faire\nAPI listant les **enfants accueillis** / foyers liés à l’AM, avec données pour le bandeau couple (enfant + parent1/parent2 noms) et un **contexte courant** persistable. Payload cohérent avec #168 pour faciliter les widgets partagés.\n\n## Done when\nLe front AM peupple le sélecteur couple et le contexte sans mock hardcodé.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":59,"name":"api","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/59"},{"id":33,"name":"backend","exclusive":false,"is_archived":false,"color":"2ecc71","description":"Backend NestJS","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/33"},{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:45Z","updated_at":"2026-09-23T15:11:26Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":1},{"id":278,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/170","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/170","number":170,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Sélecteur couple enfant–parent(s) (AM)","body":"## Contexte (B2)\nCôté AM, le couple affiché n’est pas enfant|nounou mais **enfant | parent(s)**.\n\n## À faire\nRéutiliser le **même widget couple** que #167 en mode AM. Gauche : photo + nom de l’enfant. Droite : si **deux parents**, nom+prénom du parent 1 et en dessous nom+prénom du parent 2 (pas de photo parent obligatoire) ; si **un seul parent**, son nom+prénom **centré** dans la demi-zone. Dropdown si plusieurs enfants accueillis (bascule de contexte), sinon affichage informatif.\n\n## Done when\nL’AM identifie clairement l’enfant et le foyer (1 ou 2 parents) sans composant dupliqué.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":51,"name":"ux","exclusive":false,"is_archived":false,"color":"e91e63","description":"UX/UI","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/51"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:45Z","updated_at":"2026-09-23T15:11:26Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":2},{"id":277,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/169","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/169","number":169,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Front] Coquille TdB AM 3 colonnes + bandeau","body":"## Contexte (B1)\nLe dashboard AM est aujourd’hui un placeholder (`am_dashboard_screen.dart`). Il doit devenir le **miroir** du TdB parent.\n\n## À faire\nBrancher l’écran AM sur la **même coquille 3 colonnes + bandeau** livrée en #166 (TdB / Agenda / Contrat + menu). Injecter le rôle AM pour les droits et libellés. Ne **pas** recopier le layout : réutilisation obligatoire du widget/coquille.\n\n## Hors scope\nMétier cartes/blog/messagerie (tickets miroir C3, D3, E5) ; détail couple AM (#170).\n\n## Done when\nUne AM connectée voit la même structure 3 colonnes / look pastel que le parent, prête à recevoir les widgets partagés.\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":51,"name":"ux","exclusive":false,"is_archived":false,"color":"e91e63","description":"UX/UI","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/51"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-09-23T15:03:44Z","updated_at":"2026-09-23T21:40:40Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":2},{"id":273,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/165","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/165","number":165,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Epic] Quotidien parent / AM — TdB 3 colonnes, cartes, blog, messagerie","body":"## Contexte\nEpic du jalon **0.2.0 — Quotidien parent / AM**. Objectif : construire les espaces parent et assistante maternelle du quotidien (TdB 3 colonnes, cartes, blog, messagerie), avec un logiciel réel peuplé de données. L’« effet démo » = sync live multi-écrans (parent / AM / gestionnaire), pas un sous-MVP jetable.\n\n## Périmètre\n- Coquille TdB PC **3 colonnes** (cartes | blog défaut | messagerie) + bandeau TdB / Agenda / Contrat\n- Couple actif : enfant–nounou (parent) / enfant–parent(s) (AM)\n- Cartes : absences, congés AM, maladie AM, sorties (règles mini-spec §5)\n- Blog indispensable (auteurs AM + RPE) ; Mess. AM partagée foyer ; Mess. RPE privée + médiation\n- **Widgets partagés** parent ↔ AM (pas de double code) — voir mini-spec §2\n\n## Hors scope (volontaire)\nPage Contrat riche, agenda calendrier riche, notifs CDC fourre-tout, masquage messages, posts blog parent, carnet repas/sieste.\n\n## Tickets enfants\n**A** #166–#168 · **B** #169–#171 · **C** #172–#176 · **D** #177–#180 · **E** #181–#186 · **F** #187–#188 · **G** #189\n\n## Critères d’acceptation (effet démo)\n1. Même contexte de garde parent/AM · 2. Absence parent → carte AM · 3. Post blog AM → parent · 4. Annonce RPE visible · 5. Mess. AM sync · 6. Look papier/pastel\n\n---\n### Références (source de vérité)\n- Mini-spec : `docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md`\n- Découpage : `docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md`\n- Maquette : `docs/maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png`\n- Milestone : `0.2.0` · Epic : #165\n","ref":"","assets":[],"labels":[{"id":5,"name":"documentation","exclusive":false,"is_archived":false,"color":"0075ca","description":"Improvements or additions to documentation","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/5"},{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":51,"name":"ux","exclusive":false,"is_archived":false,"color":"e91e63","description":"UX/UI","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/51"},{"id":61,"name":"v0.2.0","exclusive":false,"is_archived":false,"color":"1abc9c","description":"Milestone quotidien parent/AM","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/61"}],"milestone":{"id":11,"title":"0.2.0","description":"Quotidien parent / AM\n\nTdB 3 colonnes (cartes | blog | messagerie), couples enfant–nounou / enfant–parent(s), blog AM+RPE, messagerie AM (foyer partagé) + RPE (privée / médiation).\n\nRéf. : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md — docs/30_DECOUPAGE-TICKETS-QUOTIDIEN.md — maquettes/courantes/…-v4.png","state":"open","open_issues":23,"closed_issues":6,"created_at":"2025-11-28T09:58:27Z","updated_at":"2026-09-24T09:38:40Z","closed_at":null,"due_on":null},"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":1,"created_at":"2026-09-23T15:03:42Z","updated_at":"2026-09-24T09:02:53Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":2},{"id":258,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/150","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/150","number":150,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Full-stack] Fiche AM — combobox rattachement RPE (relais) sur l’onglet Enfants","body":"## Contexte\n\nSur la fiche AM (`AdminAmEditModal`), l’onglet **« Enfants accueillis »** gère les placements enfants, mais **aucun rattachement au RPE (relais)** n’est proposé.\n\nOr le modèle `utilisateurs.relais_id` existe déjà (utilisé pour les gestionnaires). Une AM doit pouvoir être rattachée à un **RPE / relais** depuis cette fiche.\n\n## Objectif\n\nSur le **3ᵉ onglet** de la modale AM, **au-dessus** de la section « Enfants accueillis », ajouter une **combobox « Rattachement RPE »** (liste des relais).\n\n## Frontend\n\n- [ ] Combobox / dropdown **RPE (relais)** en tête de l’onglet Enfants accueillis\n- [ ] Options : liste des relais existants (`GET /relais` ou service déjà utilisé pour les gestionnaires) + option « Aucun »\n- [ ] Préremplir avec le `relaisId` / `relaisNom` actuel de l’AM si présent\n- [ ] Modification → marque dirty → prise en compte au **Sauvegarder** (comme le reste de la fiche)\n- [ ] Placement UI : **avant** capacité / grille enfants\n\n## BDD\n\n**Pas de nouvelle table / colonne obligatoire** : `utilisateurs.relais_id` (FK → `relais`) existe déjà et peut servir pour une AM comme pour un gestionnaire.\n\nÀ faire éventuellement (léger) :\n- [ ] Clarifier côté modèle TypeORM : la relation `Relais.gestionnaires` est mal nommée (c’est en réalité *tous* les users liés) — renommer en `users` / `membres` si on touche au code\n- [ ] Aucune migration SQL bloquante pour le MVP de cette feature\n\n> Si un jour on veut un historique / multi-RPE AM, il faudrait une table de liaison dédiée — **hors scope 0.1.0**.\n\n## Backend / API — à faire évoluer\n\nAujourd’hui l’API fiche AM **ignore** le RPE :\n- `UpdateAmFicheAdminDto` : **pas** de `relaisId`\n- `updateFicheAdmin` : ne touche pas `user.relaisId`\n- `GET` AM : relations chargées sans `user.relais` (souvent juste `relais_id` brut si présent sur user)\n\nTravaux :\n- [ ] Ajouter `relaisId?: string | null` à `UpdateAmFicheAdminDto`\n- [ ] Dans `updateFicheAdmin`, persister `user.relaisId` (null = détacher du RPE)\n- [ ] Charger / exposer `user.relais` (id + nom) dans les réponses AM (`findOne` / `findAll` + mapper)\n- [ ] Vérifier `sanitizeUserForApi` / front `AssistanteMaternelleModel` pour lire `relaisId` / `relaisNom`\n- [ ] Réutiliser `GET /relais` existant pour peupler la combobox\n\n## Hors scope\n\n- Création d’un nouveau RPE depuis cette combobox (gestion relais = écran dédié)\n- Changement des règles métier gestionnaire / périmètre territorial au-delà du lien AM ↔ relais\n\n## Critères d'acceptation\n\n- [ ] Combobox visible en haut du 3ᵉ onglet, avant la gestion des enfants\n- [ ] Sélection d’un RPE + Sauvegarder → AM rattachée en BDD\n- [ ] Remise à « Aucun » + Sauvegarder → `relais_id` null\n- [ ] Rechargement fiche → valeur conservée\n\n## Milestone\n\n**0.1.0**\n\n## Références\n\n- Champ existant gestionnaires : `AdminUserFormDialog` / `relaisId`\n- Table `relais` + `utilisateurs.relais_id`\n","ref":"","assets":[],"labels":[{"id":56,"name":"admin","exclusive":false,"is_archived":false,"color":"9c27b0","description":"Administration","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/56"},{"id":33,"name":"backend","exclusive":false,"is_archived":false,"color":"2ecc71","description":"Backend NestJS","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/33"},{"id":7,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/7"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":55,"name":"gestionnaire","exclusive":false,"is_archived":false,"color":"ff9800","description":"Gestionnaire","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/55"},{"id":57,"name":"phase-1","exclusive":false,"is_archived":false,"color":"d32f2f","description":"Phase 1","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/57"},{"id":58,"name":"ui","exclusive":false,"is_archived":false,"color":"ededed","description":"","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/58"},{"id":60,"name":"v0.1.0","exclusive":false,"is_archived":false,"color":"207de5","description":"Issue rattachée au périmètre release 0.1.0","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/60"}],"milestone":null,"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":1,"created_at":"2026-07-17T14:17:07Z","updated_at":"2026-09-15T15:45:50Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":1},{"id":249,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/141","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/141","number":141,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Full-stack] Statut enfant — remplacer « actif » par gardé / sans garde (+ migration BDD)","body":"## Contexte\n\nLe type PostgreSQL `statut_enfant_type` et l’enum backend `StatutEnfantType` portent aujourd’hui **3 valeurs** :\n\n| Valeur API | Libellé actuel | Problème |\n|------------|----------------|----------|\n| `a_naitre` | À naître | OK |\n| `actif` | Actif | **Trop vague** — ne distingue pas enfant **gardé chez une AM** vs **chez lui sans AM** |\n| `scolarise` | Scolarisé | OK |\n\nRéf. schéma : `database/BDD.sql`, `backend/src/entities/children.entity.ts`, `docs/10_DATABASE.md`.\n\n## Objectif métier\n\nPasser à **4 statuts** qui reflètent la réalité du Relais :\n\n| Valeur API (proposition) | Libellé UI (proposition) | Signification |\n|--------------------------|--------------------------|---------------|\n| `a_naitre` | **À naître** | Enfant pas encore né (date prévue) |\n| `garde` | **Gardé** | Enfant actuellement en garde chez une assistante maternelle |\n| `sans_garde` | **Sans garde** | Enfant chez lui / chez ses responsables, **pas** placé chez une AM |\n| `scolarise` | **Scolarisé** | Enfant scolarisé (hors garde AM au sens Relais) |\n\n\n## Backend\n\n- [ ] Migration SQL `ALTER TYPE statut_enfant_type` (ajout valeurs + migration données + retrait `actif`)\n- [ ] Enum `StatutEnfantType` + DTOs Swagger (`CreateEnfantsDto`, `UpdateEnfantsDto`, dossier famille #119)\n- [ ] Règles métier : `auth.service` (inscription / reprise #112) — aujourd’hui `actif` si date naissance, `a_naitre` sinon\n- [ ] Messages d’erreur (`Un enfant actif doit avoir une date de naissance` → adapter)\n- [ ] Tests unitaires\n\n### Migration données (à cadrer)\n\n| Ancien | Proposition par défaut | Commentaire |\n|--------|------------------------|-------------|\n| `a_naitre` | `a_naitre` | inchangé |\n| `actif` | **`sans_garde`** | **Valeur par défaut** à la migration (libellé « Sans garde ») |\n| `scolarise` | `scolarise` | inchangé |\n\n## Frontend\n\n- [ ] Inscription parent (étape enfants), reprise #112, validation wizard\n- [ ] Dashboard admin : filtres onglet Enfants (#137), fiche enfant (#138), modales #140\n- [ ] Libellés accordés au genre si besoin (comme `scolarise` dans `validation_family_wizard.dart`)\n\n## Documentation\n\n- [ ] `docs/10_DATABASE.md`, `database/docs/ENUMS.md`\n- [ ] `EVOLUTIONS_CDC.md` ou CDC § statut enfant si applicable\n\n## Critères d’acceptation\n\n1. Plus aucune référence à `actif` pour le statut enfant (API + UI + BDD).\n2. Les 4 statuts sont sélectionnables en admin et à l’inscription.\n3. Données existantes migrées sans perte (script + vérif comptages avant/après).\n4. Swagger et tests à jour.\n\n## Hors scope\n\n- Lien automatique statut ↔ contrat AM (futur : statut `garde` déduit d’un contrat actif ?)\n- Qualification responsable–enfant (#139)\n\n## Branche suggérée\n\n`feature/141-statut-enfant-garde-sans-garde` depuis `develop`","ref":"","assets":[],"labels":[],"milestone":null,"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":2,"created_at":"2026-06-21T15:46:21Z","updated_at":"2026-06-24T20:50:02Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":2},{"id":247,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/139","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/139","number":139,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Epic] Parcours gestionnaire — famille complexe (N responsables, visibilité par enfant)","body":"## Contexte\n\nDoc `docs/28_EVOLUTION-FAMILLE-ET-RESPONSABLES.md` § 4.4 et § 7.5.\n\nCas type : M + A → α, M + B → β. **M** doit avoir **α et β sur le même compte** ; **A** ne voit que α, **B** que β.\n\n## Objectif\n\nParcours de **création réservé au gestionnaire** (pas inscription publique) pour constituer une configuration avec **plus de 2 responsables/tuteurs**, sans se limiter au champ `co_parent`, en s'appuyant sur `enfants_parents`.\n\n## Règles clés\n\n- Visibilité parent = enfants liés via `enfants_parents` uniquement\n- Workflows (validation, refus, reprise) sans fusion `getFamilyUserIds`\n- Composition libre : cocher responsables par enfant\n\n## Dépendances\n\n- #115 / #116 affiliation\n- #129 création admin (extension)\n- Refonte visibilité API parent + workflows\n\n## Hors scope v1.0.0\n\nContournement actuel : 2ᵉ email pour M (doc 28 § 4.2).","ref":"","assets":[],"labels":[],"milestone":null,"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-06-16T22:31:00Z","updated_at":"2026-07-24T15:51:23Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":0},{"id":236,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/128","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/128","number":128,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Full-stack] Audit / traçabilité des modifications dossier et profils (parent/AM)","body":"## Contexte\n\nPour la sécurité et le suivi des dossiers (familles et assistantes maternelles), il faut pouvoir **savoir qui a modifié quoi, quand** sur les données d'un dossier ou d'un profil. C'est essentiel en cas de **litige ou désaccord entre co-parents**, de support / audit, et pour la conformité minimale.\n\nAujourd'hui :\n- Certaines entités ont déjà des timestamps **`cree_le` / `modifie_le`** (`dossier_famille`, `utilisateurs`), mais ils ne disent pas **qui** a modifié, ni **quels champs**, ni les **événements transverses** (refus, validation, fusion de comptes…).\n- Il n'existe **aucun journal d'audit** structuré.\n\n## Objectif\n\nMettre en place un **journal d'audit** (qui / quand / quoi) couvrant :\n\n- **Dossier famille** (parents, enfants, présentation / motivation).\n- **Dossier assistante maternelle** (identité, infos pro, photo, champs métier).\n\n…sans logger tout le bruit applicatif.\n\n## Périmètre & règles produit\n\n### 1. Règle simple — alignée inscription\n\nÀ **chaque modification** d'une information **fournie lors de la création** du dossier **parent** ou **AM**, un événement est **loggé**. La liste exacte est dérivée des champs persistés à l'inscription (`RegisterParentCompletDto`, `RegisterAMCompletDto` et entités liées), ce qui couvre notamment :\n\n- identité, coordonnées (adresse, téléphone, ville, code postal, …),\n- **photo** (parent, AM, enfants),\n- enfants (parcours parent : prénom/nom, dates, genre, consentement, …),\n- texte de présentation / motivation,\n- champs métier AM (NIR, agrément, capacité d'accueil, places dispo, biographie, …).\n\n**Exclus par défaut** (sauf décision ultérieure) : lectures, listings, requêtes purement techniques, heartbeats, etc.\n\n### 2. Actions structurelles et événements métier (toujours loggés)\n\n- **Association / fusion de deux comptes**, **rattachement co-parent**, **affectation ou changement de `numero_dossier`**, tout regroupement ou scission identifiable → événement dédié (qui, quand, identifiants concernés, type d'opération).\n- **Cycle de vie** dossier / compte : **refus**, **validation**, **suspension** (et équivalents) → une ligne d'audit par action, pour une **timeline lisible** côté gestionnaire.\n\n## Architecture proposée\n\n### Journal d'audit en BDD (recommandé vs simple fichier)\n\n- Permet requêtes / filtres par `numero_dossier` ou `user_id`, sauvegardes PG, cohérence transactionnelle.\n- **Colonnes typiques** (à figer en spec technique) :\n - `id`\n - `occurred_at` (timestamptz)\n - `actor_user_id` (nullable si action système) + `actor_role`\n - `numero_dossier` (dénormalisé pour filtrage)\n - `entity_type` (`utilisateur` | `parent` | `assistante_maternelle` | `enfant` | `dossier_famille` | …)\n - `entity_id`\n - `action` (`create` | `update` | `delete` | événement métier : `refus`, `validation`, `suspension`, `fusion_comptes`, `affectation_numero_dossier`, …)\n - `changes` JSON (ancien / nouveau ou patch, ou résumé pour les événements)\n - optionnels : `request_id`, `ip`, `source` (`gestionnaire_ui`, `selfservice_reprise`, …)\n- Écriture **dans la même transaction** que la modification métier (ou outbox si async).\n\n### Colonnes « création / dernière modification »\n\n- Ne **pas dupliquer** sur chaque table : `cree_le` / `modifie_le` existent déjà sur `dossier_famille` et `utilisateurs`.\n- Faire un **inventaire** des entités du dossier (parents, enfants, AM, pièces jointes…) et **compléter** uniquement où il manque des `@UpdateDateColumn` / triggers.\n- Si besoin d'une **« dernière modification dossier »** unique par `numero_dossier` : soit **vue / requête** sur `max(modifie_le)`, soit colonne dérivée sur une entité pivot — à trancher en spec.\n\n### Fichier\n\nRéservé éventuellement en **complément** (export append-only, intégration SI) ; **pas** comme source unique si l'app affiche l'historique.\n\n## Accès gestionnaire (exigence métier)\n\n- Le **gestionnaire** doit pouvoir consulter **facilement** l'historique des modifications d'un dossier (`numero_dossier`), notamment **en cas de litige entre co-parents**.\n- **Backend** : endpoint dédié (ex. `GET …/dossiers/:numeroDossier/audit` ou sous-ressource des routes gestionnaire existantes), pagination, tri par date, contrôle d'accès **gestionnaire / admin** (même périmètre que la validation dossier).\n- **Frontend** : entrée visible depuis le parcours d'examen d'un dossier (wizard / fiche dossier) — onglet ou panneau **« Historique des modifications »**, pas une page cachée.\n- **Contenu affiché minimum** : date / heure, acteur (identité + rôle), nature du changement (champs ou résumé JSON lisible) ; distinction claire **parent 1 / parent 2 / AM / gestionnaire / admin**.\n\n## Visibilité parents & AM (phase suivante)\n\nÀ terme, lorsque les **parents** et les **AM** auront leur **tableau de bord**, un **sous-menu discret** (non mis en avant, mais accessible) donnera accès au **même historique** côté demandeur, **incluant toutes** les lignes d'audit (gestionnaire, admin, parent, AM).\n\n→ Le ticket peut être livré en deux temps si nécessaire : **MVP** (API + écran gestionnaire), **phase dashboard** (entrée parent/AM dans leur tableau de bord, dépend de l'avancée des dashboards).\n\n## Points transverses\n\n- **Sécurité / secrets** : exigence implicite — **pas** de mots de passe, tokens en clair, etc. dans les payloads d'audit.\n- **RGPD / rétention** : durée de conservation des lignes d'audit, anonymisation à la suppression compte → **pas urgent pour la V1**, peut faire l'objet d'une issue dédiée.\n- **Export CSV / PDF** gestionnaire : **hors périmètre V1** — ticket séparé en phase 2.\n- **Alignement** avec les flux **modification dossier** (en attente + refusé, mêmes DTO / même `apply…(context)`) : l'audit doit recevoir un `source` ou `correlation_id` pour distinguer gestionnaire vs demandeur.\n\n## Critères de done (V1)\n\n- [ ] Migration / mise à jour [`database/BDD.sql`](database/BDD.sql) : table d'audit + index utiles (`numero_dossier`, `occurred_at`, `actor_user_id`).\n- [ ] Inventaire & complétion `@CreateDateColumn` / `@UpdateDateColumn` manquants sur les entités du dossier.\n- [ ] Service applicatif `appendAuditLog(...)` (ou équivalent) branché sur :\n - création / modification des champs « inscription parent / AM » ;\n - refus, validation, suspension ;\n - affectation / changement `numero_dossier`, fusion / association de comptes.\n- [ ] API `GET …/dossiers/:numeroDossier/audit` (gestionnaire / admin) — pagination, tri par date.\n- [ ] Écran / panneau **gestionnaire** « Historique des modifications » sur la fiche dossier (famille et AM).\n- [ ] Tests unitaires / intégration sur les chemins critiques.\n- [ ] OpenAPI à jour.\n\n## Hors périmètre (à scinder en autres tickets si besoin)\n\n- Export CSV / PDF de l'historique.\n- Durée de rétention RGPD + anonymisation à la suppression compte.\n- Entrée « historique » dans le tableau de bord parent / AM (dépend des dashboards).\n","ref":"","assets":[],"labels":[{"id":33,"name":"backend","exclusive":false,"is_archived":false,"color":"2ecc71","description":"Backend NestJS","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/33"},{"id":34,"name":"database","exclusive":false,"is_archived":false,"color":"f39c12","description":"Base de données PostgreSQL","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/34"},{"id":32,"name":"frontend","exclusive":false,"is_archived":false,"color":"3498db","description":"Frontend Flutter/Web","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/32"},{"id":55,"name":"gestionnaire","exclusive":false,"is_archived":false,"color":"ff9800","description":"Gestionnaire","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/55"},{"id":38,"name":"p2","exclusive":false,"is_archived":false,"color":"f1c40f","description":"Priorité 2","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/38"},{"id":57,"name":"phase-1","exclusive":false,"is_archived":false,"color":"d32f2f","description":"Phase 1","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/57"},{"id":44,"name":"rgpd","exclusive":false,"is_archived":false,"color":"16a085","description":"RGPD/Conformité","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/44"},{"id":43,"name":"security","exclusive":false,"is_archived":false,"color":"8e44ad","description":"Sécurité","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/43"},{"id":60,"name":"v0.1.0","exclusive":false,"is_archived":false,"color":"207de5","description":"Issue rattachée au périmètre release 0.1.0","url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels/60"}],"milestone":null,"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-05-13T14:55:16Z","updated_at":"2026-07-17T15:05:00Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":0},{"id":234,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/126","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/126","number":126,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Bug][Regression] Upload documents légaux retourne 500 (lié #33)","body":"## Contexte\nLe front obtient un `500` sur `POST /api/v1/documents-legaux` alors que le ticket #33 est fermé.\n\n## Symptôme observé\n- Requête: `POST /api/v1/documents-legaux` (multipart `type` + `file`)\n- Réponse: `500`\n- Traefik confirme la requête vers `ptitspas-api@docker` avec statut 500.\n\n## Hypothèse technique\nDans `DocumentsLegauxController`, l'upload utilise encore un `userId` placeholder (`00000000-0000-0000-0000-000000000000`).\nLe service tente ensuite d'enregistrer `televersePar` avec cet ID, ce qui peut casser la contrainte FK et produire un 500.\n\n## Attendu\n- Pas de 500 sur upload valide.\n- Si utilisateur non authentifié/non résolu, gérer explicitement (fallback sans `televersePar` ou 4xx clair).\n- Erreurs métier explicites (400/401/403) plutôt qu'erreur interne.\n\n## Liens\n- Régression liée à #33\n- Impact fonctionnel: test front montée documents légaux bloqué","ref":"","assets":[],"labels":[],"milestone":null,"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-04-17T10:43:09Z","updated_at":"2026-04-17T15:35:37Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":0},{"id":233,"url":"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/125","html_url":"https://git.ptits-pas.fr/jmartin/petitspas/issues/125","number":125,"user":{"id":2,"login":"jmartin","login_name":"","source_id":0,"full_name":"MARTIN Julien","email":"julien.martin@ptits-pas.fr","avatar_url":"https://git.ptits-pas.fr/avatars/cdc397d2522aca19e6a3ad88f54d2fd140c481810d2af29ec8d516700e73d107","html_url":"https://git.ptits-pas.fr/jmartin","language":"fr-FR","is_admin":false,"last_login":"2026-09-09T13:44:59Z","created":"2025-05-19T20:13:48Z","restricted":false,"active":true,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":1,"starred_repos_count":1,"username":"jmartin"},"original_author":"","original_author_id":0,"title":"[Tech] Contrôle d’accès téléchargement photo","body":"Objectif: endpoint sécurisé de téléchargement photo avec check de droits centralisé (policy/service).\\n\\nCritères:\\n- Endpoint sécurisé (réf #57)\\n- Contrôle d’accès par rôle et relation métier (parent/AM/gestionnaire)\\n- Remplacement progressif de l’accès statique non contrôlé\\n- Tests d’autorisation nominaux + refus\\n\\nContexte: sécurité/RGPD minimal requis pour 0.1.0.","ref":"","assets":[],"labels":[],"milestone":null,"projects":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-04-16T08:45:54Z","updated_at":"2026-09-15T15:45:50Z","closed_at":null,"due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":5,"name":"petitspas","owner":"jmartin","full_name":"jmartin/petitspas"},"pin_order":0,"content_version":0}]