[Full-stack] Inscription AM — photo, API et UX alignés sur les parents (suite #91) #120
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Le ticket #91 a fermé le branchement de POST /api/v1/auth/register/am, mais la chaîne photo reste fragile :
photo_base64etphoto_filenamesont tous deux présents (auth.service.ts,inscrireAMComplet). Or le front n’envoie pasphoto_filename.registerAMn’envoie pasphoto_filename; l’étape 2 AM fournit unonPickPhotovide (am_register_step2_screen.dart) ; le récap étape 4 forcephotoPath: nullpour l’affichage ; sur le web, s’appuyer uniquement surdart:io+File(path)est insuffisant (même approche que parents :ImagePicker+readAsBytes,kIsWeb).Objectif global : une assistante peut soumettre une inscription avec photo réelle ; le gestionnaire voit la photo dans le flux de validation ; comportement équivalent au parcours parents (base64 + nom de fichier + robustesse).
Partie A — Backend
Fichiers indicatifs :
backend/src/routes/auth/auth.service.ts,backend/src/routes/auth/dto/register-am-complet.dto.ts,backend/src/routes/auth/auth.controller.tsÀ faire
photo_base64est présent et valide (data-URLdata:image/...;base64,...) : persister la photo même siphoto_filenameest absent → utiliser un nom par défaut (ex.photo_am.jpg) ; l’extension effective doit rester cohérente avecsauvegarderPhotoDepuisBase64(déjà dérivée du type dans le data-URL).@ApiProperty:photo_filenameoptionnel lorsquephoto_base64est fourni ; préciser le défaut serveur.Critères d’acceptation (back)
photo_base64valide sansphoto_filename→ utilisateur créé,photo_urlrenseigné, fichier présent côté stockage configuré.Partie B — Frontend
Fichiers indicatifs :
frontend/lib/services/auth_service.dart(registerAM),frontend/lib/models/am_registration_data.dart,frontend/lib/screens/auth/am_register_step2_screen.dart,frontend/lib/screens/auth/am_register_step4_screen.dart,frontend/lib/widgets/professional_info_form_screen.dart, référence parents :parent_register_step3_screen.dart,parent_registration_payload.dartÀ faire
XFile.readAsBytes(); ne pas dépendre uniquement deFile(path)sur web.Uint8List?) ou équivalent jusqu’àregisterAM.photo_base64etphoto_filenamelorsqu’une photo est présente (nom dérivé du fichier ou valeur fixe cohérente, alignée parents).registerParentsi possible.Critères d’acceptation (front)
photo_urlcôté serveur non vide après inscription (vérification admin / BDD).Partie C — QA / recette globale
Références
tmp/inscription-am-photo-backend.md— section backend rappelLivraison code : parties A (back) et B (front) merg�es dans
develop.feature/120-inscription-am-photo-backend(d�fautphoto_filename, persistance si base64 seul).feature/120-inscription-am-photo-frontend(ImagePicker,photo_bytes/ filename, r�cap).� faire c�t� �quipe : cocher les cases QA (Partie C) sur environnement de test.
Fermeture ticket #120 — livré sur
developBranche
feature/120-inscription-am-photomergée dansdevelop(livraison : inscription AM alignée parents + panneau validation gestionnaire).Inscription AM (alignement parents)
registration_photo_slot, scripts de test Node).Panneau gestionnaire — onglet « À valider »
iconSize34).Wizard validation dossier AM
[2,2,2,2]: NIR | date de naissance, ville | pays de naissance, n° agrément | date d'agrément, capacité | places.AppUser:date_naissance,lieu_naissance_ville,lieu_naissance_pays; affichage datesdd/MM/yyyy(formatIsoDateFr).ValidationDetailSection: titre optionnel (wizard AM).Wizard validation famille
Nettoyage
debugPrintliés aux médias / images / chargement dossier (api_config,auth_network_image,dossier_unifie,user_service, carte enfant validation).Issue fermée après merge sur
developet recette.