Permet au dashboard de créer un dossier parent complet (pivot, co-parent optionnel, enfants, n° dossier) déjà actif, avec e-mail de création de mot de passe — miroir du parcours AM (#156), sans passer par l’inscription publique en attente. Co-authored-by: Cursor <cursoragent@cursor.com>
90 lines
2.5 KiB
Markdown
90 lines
2.5 KiB
Markdown
# Mini-spec API — POST /parents/dossier (#129)
|
||
|
||
Contrat pour le **plan front** (wizard création dossier famille staff).
|
||
|
||
Miroir de **#156** (`POST /assistantes-maternelles/dossier`).
|
||
|
||
## Endpoint
|
||
|
||
| | |
|
||
|--|--|
|
||
| **Méthode** | `POST` |
|
||
| **URL** | `{base}/parents/dossier` |
|
||
| **Auth** | Bearer JWT |
|
||
| **Rôles** | `gestionnaire`, `administrateur`, `super_admin` |
|
||
| **Content-Type** | `application/json` |
|
||
|
||
Ne **pas** appeler `POST /auth/register/parent` depuis le dashboard.
|
||
|
||
## Body (JSON)
|
||
|
||
Aligné `RegisterParentCompletDto`, **sans** CGU/privacy obligatoires (acceptées serveur).
|
||
|
||
### Parent 1 (obligatoire)
|
||
|
||
| Champ | Type | Obligatoire | Notes |
|
||
|-------|------|-------------|--------|
|
||
| `email` | string | oui | unique |
|
||
| `prenom` | string | oui | |
|
||
| `nom` | string | oui | |
|
||
| `telephone` | string | oui | `0X…` ou `+33…` |
|
||
| `adresse` | string | non | |
|
||
| `code_postal` | string | non | |
|
||
| `ville` | string | non | |
|
||
|
||
### Co-parent (optionnel)
|
||
|
||
`co_parent_email`, `co_parent_prenom`, `co_parent_nom`, `co_parent_telephone`,
|
||
`co_parent_meme_adresse`, `co_parent_adresse`, `co_parent_code_postal`, `co_parent_ville`.
|
||
|
||
Si co-parent fourni : e-mail distinct ; mêmes règles téléphone / adresse que register.
|
||
|
||
### Enfants (≥ 1)
|
||
|
||
| Champ | Type | Notes |
|
||
|-------|------|--------|
|
||
| `enfants` | `EnfantInscriptionDto[]` | `prenom`, `nom`, `date_naissance` / `date_previsionnelle_naissance`, `genre`, `photo_base64`, `photo_filename`, etc. |
|
||
|
||
### Présentation
|
||
|
||
| Champ | Type | Obligatoire |
|
||
|-------|------|-------------|
|
||
| `presentation_dossier` | string | non (max 2000) |
|
||
|
||
## Réponses
|
||
|
||
### 201 Created
|
||
|
||
```json
|
||
{
|
||
"message": "Dossier famille créé et validé. Un e-mail de création de mot de passe a été envoyé.",
|
||
"numero_dossier": "2026-000043",
|
||
"parent_user_id": "uuid-pivot",
|
||
"co_parent_user_id": "uuid-ou-null",
|
||
"statut": "actif",
|
||
"enfant_ids": ["uuid", "..."]
|
||
}
|
||
```
|
||
|
||
Effets serveur : user(s) parent **actif**, fiches `parents`, enfants + foyer, n° dossier,
|
||
**e-mail création MDP** pour chaque compte sans MDP (pas d’accusé « en attente »).
|
||
|
||
### Erreurs
|
||
|
||
| Code | Cas |
|
||
|------|-----|
|
||
| 400 | Validation DTO / métier (enfants vides, dates, etc.) |
|
||
| 401 | Token manquant / invalide |
|
||
| 403 | Rôle non staff |
|
||
| 409 | Conflit e-mail (pivot et/ou co-parent) |
|
||
|
||
## Front
|
||
|
||
- `UserService.createParentDossier(body)` → cet endpoint
|
||
- Wizard create basé sur `ValidationFamilyWizard`
|
||
- Ne pas envoyer `acceptation_cgu` / `acceptation_privacy` (optionnels)
|
||
|
||
## Branche
|
||
|
||
`feature/129-creation-dossier-parent`
|