# 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`.*
