✅ Modifications apportées :
- Rendu le champ 'genre' obligatoire dans CreateEnfantsDto (conforme CDC)
- Ajout upload photo avec Multer (max 5MB, formats jpg/jpeg/png/gif)
- Rattachement automatique au co-parent s'il existe
- Création dossier /app/uploads/photos dans Dockerfile avec permissions
- Gestion enfants à naître vs nés
- Gestion consentement photo avec horodatage
✅ Tests réalisés :
- Création enfant 'actif' avec date de naissance (Emma Martin)
- Création enfant avec rattachement aux 2 parents (Noah Martin)
- Création enfant 'a_naitre' avec date prévue (Léa Martin)
- Vérification base de données : enfants bien rattachés aux parents
Refs: #18
- Création DTOs (UploadDocumentDto, DocumentsActifsResponseDto, DocumentVersionDto)
- Création DocumentsLegauxController avec 6 endpoints:
* GET /documents-legaux/actifs (public)
* GET /documents-legaux/:type/versions (admin)
* POST /documents-legaux (upload, admin)
* PATCH /documents-legaux/:id/activer (admin)
* GET /documents-legaux/:id/download (public)
* GET /documents-legaux/:id/verifier-integrite (admin)
- Support upload multipart/form-data avec FileInterceptor
- Validation des types (cgu/privacy)
- Stream PDF pour téléchargement
- Intégration dans DocumentsLegauxModule
- Compilation OK
TODO: Ajouter guards auth (JwtAuthGuard, RolesGuard)
Réf: docs/22_DOCUMENTS-LEGAUX.md
Implémentation de l'API REST pour la gestion de la configuration
système par les administrateurs.
Nouveaux fichiers :
- modules/config/config.controller.ts : Controller REST
- modules/config/dto/update-config.dto.ts : DTO mise à jour
- modules/config/dto/test-smtp.dto.ts : DTO test SMTP
Endpoints créés :
✅ GET /api/v1/configuration/setup/status
→ Vérifier si la configuration initiale est terminée
✅ POST /api/v1/configuration/setup/complete
→ Marquer la configuration comme terminée
✅ POST /api/v1/configuration/test-smtp
→ Tester la connexion SMTP + envoi email de test
✅ PATCH /api/v1/configuration/bulk
→ Mise à jour multiple des configurations
✅ GET /api/v1/configuration
→ Récupérer toutes les configurations (admin)
✅ GET /api/v1/configuration/:category
→ Récupérer par catégorie (email/app/security)
Fonctionnalités :
- Validation des données avec class-validator
- Test SMTP avec Nodemailer
- Envoi d'email de test HTML
- Gestion d'erreurs complète
- Rechargement automatique du cache
- Traçabilité des modifications
Sécurité :
- Guards commentés (à activer avec JWT)
- Validation des catégories
- Mots de passe masqués dans les réponses
Dépendances ajoutées :
- nodemailer ^6.9.16
- @types/nodemailer ^6.4.16
Tests effectués :
✅ GET /setup/status → {setupCompleted: false}
✅ GET /email → 8 configurations email
✅ Build Docker réussi
✅ Toutes les routes mappées correctement
Ref: #6
Implémentation du service de configuration dynamique pour
le déploiement on-premise de l'application.
Nouveaux fichiers :
- entities/configuration.entity.ts : Entité TypeORM
- modules/config/config.service.ts : Service avec cache et encryption
- modules/config/config.module.ts : Module NestJS
- modules/config/index.ts : Export centralisé
Fonctionnalités :
✅ Cache en mémoire au démarrage (16 configurations)
✅ Chiffrement AES-256-CBC pour valeurs sensibles
✅ Conversion automatique de types (string/number/boolean/json)
✅ Méthodes get/set avec traçabilité
✅ Récupération par catégorie (email/app/security)
✅ Masquage automatique des mots de passe
✅ Support setup wizard (isSetupCompleted)
Sécurité :
- Clé de chiffrement depuis CONFIG_ENCRYPTION_KEY
- Format iv:encrypted pour AES-256-CBC
- Mots de passe masqués dans les API
Intégration :
- AppConfigModule ajouté à app.module.ts
- Service global exporté pour utilisation dans toute l'app
- Chargement automatique au démarrage (OnModuleInit)
Tests :
✅ Build Docker réussi
✅ 16 configurations chargées en cache
✅ Service démarré sans erreur
Ref: #5