- Lieu naissance obligatoire (DTO), persistance Users + migration SQL - BDD.sql: colonnes lieu_naissance_*, tables dossier_famille / dossier_famille_enfants - inscrireAMComplet: places_available = capacite_accueil - GET dossier AM: user.lieu_naissance_*, consentement_photo - docs/TEMP_FRONT_alignement_AM.md pour équipe Flutter - Parité: email accusé AM, RegisterAmResponseDto (numero_dossier) Made-with: Cursor
45 lines
2.4 KiB
Markdown
45 lines
2.4 KiB
Markdown
# TEMP — Alignement front / API (inscription AM & validation gestionnaire)
|
||
|
||
> **Fichier temporaire** : à supprimer ou renommer une fois le front livré.
|
||
|
||
Ce document décrit les changements **côté API** et ce que **Flutter** doit faire pour rester aligné. Aucune modification front n’a été faite dans le chantier backend associé.
|
||
|
||
## 1. `POST /auth/register/am` — lieu de naissance obligatoire
|
||
|
||
- **`lieu_naissance_ville`** et **`lieu_naissance_pays`** sont **obligatoires** (non vides après trim, min. **2 caractères** chacun, max 100).
|
||
- Réponses **400** si manquants ou invalides (messages class-validator).
|
||
- **Action front** : champs obligatoires dans le parcours AM (étapes identité / naissance), validation UI avant envoi ; afficher les erreurs renvoyées par l’API.
|
||
|
||
## 2. Réponse `GET /dossiers/:numeroDossier` (type `am`)
|
||
|
||
Sous `dossier.user`, l’API peut inclure :
|
||
|
||
| Clé JSON | Description |
|
||
|----------|-------------|
|
||
| `date_naissance` | Date (si renseignée à l’inscription) |
|
||
| `lieu_naissance_ville` | Ville de naissance |
|
||
| `lieu_naissance_pays` | Pays de naissance |
|
||
| `consentement_photo` | Booléen (exposé dans `dossier.user`) |
|
||
|
||
À la **racine** de `dossier` (objet AM), champs déjà renvoyés par le backend : `disponible`, `annees_experience`, `specialite`, `nb_max_enfants`, `place_disponible`, etc.
|
||
|
||
**Action front** :
|
||
|
||
- Étendre **`AppUser.fromJson` / `toJson`** (`lib/models/user.dart`) pour mapper `date_naissance`, `lieu_naissance_ville`, `lieu_naissance_pays`, `consentement_photo`.
|
||
- Étendre **`DossierAM.fromJson`** (`lib/models/dossier_unifie.dart`) pour parser `disponible`, `annees_experience`, `specialite` à la racine du dossier (noms snake_case comme dans la réponse JSON Nest).
|
||
|
||
## 3. `ValidationAmWizard` (admin)
|
||
|
||
Afficher pour cohérence avec le formulaire d’inscription :
|
||
|
||
- **Informations personnelles** : date de naissance, ville / pays de naissance, consentement photo (Oui/Non).
|
||
- **Informations professionnelles** : disponibilité, années d’expérience, spécialité (afficher « – » si `null`).
|
||
|
||
## 4. `place_disponible` à l’inscription
|
||
|
||
- Le backend initialise **`place_disponible`** sur la fiche AM à la **même valeur** que **`capacite_accueil`** à la création. Le wizard peut donc afficher une valeur cohérente avec la capacité sans champ séparé côté public.
|
||
|
||
---
|
||
|
||
*Dernière mise à jour : alignement backend branche `feature/120-inscription-am-photo-backend`.*
|