003fe6b762
feat( #131 ): fiches parent/AM éditable, placement AM↔enfant, statuts garde/sans_garde
...
Squash merge develop → master.
- Fiche parent éditable (co-parent, PATCH fiche, GET /parents)
- Fiche AM 3 onglets (PATCH fiche, rattacher/détacher enfants)
- Table enfants_assistantes_maternelles + enum garde/sans_garde
- Migration SQL + BDD.sql canonique
- Correctifs recette : @Get() parents, DTO fiche AM, fix NIR
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 22:49:57 +02:00
15123f691c
feat(auth): #127 forgot-password + reset-password API (BDD + mail)
...
Made-with: Cursor
2026-04-23 18:17:39 +02:00
cdae9b5f7c
feat(am): alignement inscription/validation + BDD init
...
- 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
2026-04-13 13:14:38 +02:00
1772744c81
feat( #119 ): dossier famille = 1 par famille, N enfants; retrait repas/type_contrat/budget; adresse dans API parents
...
Made-with: Cursor
2026-03-18 01:52:28 +01:00
86d8189038
feat( #110 ): Refus sans suppression – token reprise + email
...
- Colonnes token_reprise, token_reprise_expire_le (migration + BDD.sql)
- refuser: génère token (7j), enregistre, trace validations, envoie email (template refus + lien reprise)
- MailService.sendRefusEmail ; échec email ne bloque pas le refus
Made-with: Cursor
2026-03-12 22:56:27 +01:00
393a527c37
feat( #105 ): Statut « refusé » – enum, migration, pending/reprise, refuser, connexion
...
- Enum statut_utilisateur_type + valeur 'refuse' (migration + BDD.sql)
- GET /users/reprise, PATCH /users/:id/refuser (refus_compte en validations)
- PATCH /users/:id/valider accepte en_attente et refuse (reprise)
- Connexion refusée si statut refuse
Made-with: Cursor
2026-03-12 22:21:12 +01:00
dfd58d9b6c
feat( #103 ): Numéro de dossier – backend
...
- Colonne numero_dossier (utilisateurs, assistantes_maternelles, parents)
- Table numero_dossier_sequence, format AAAA-NNNNNN, séquence par année
- Génération à la soumission AM et parent (famille)
- Backfill existants (famille = co_parent ou enfants partagés)
- API PATCH /users/:id/numero-dossier (gestionnaire/admin)
- Garde-fous: max 2 parents/dossier, pas de mélange AM/parent
Made-with: Cursor
2026-03-12 22:12:33 +01:00
ed18dcab10
fix(backend): simplify gestionnaire creation and set default status to ACTIF
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 10:25:42 +01:00
ae786426fd
feat(backend): implement Relais module and relation with Gestionnaire (Ticket #94 )
...
- Create Relais entity
- Create Relais module, controller, service with CRUD
- Update Users entity with ManyToOne relation to Relais
- Update GestionnairesService to handle relaisId
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 14:27:14 +01:00
40c7f40d12
feat(backend): endpoint inscription parent + nettoyage code #9
...
🧹 NETTOYAGE CODE ÉTUDIANT:
- Suppression console.log/error (4 occurrences)
- Suppression code commenté inutile
- Suppression champs obsolètes (mobile, telephone_fixe)
- Correction password nullable dans Users entity
✨ NOUVELLES FONCTIONNALITÉS:
- Ajout champs token_creation_mdp dans Users entity
- Création RegisterParentDto (validation complète)
- Endpoint POST /auth/register/parent
- Méthode registerParent() avec transaction
- Gestion Parent 1 + Parent 2 (co-parent optionnel)
- Génération tokens UUID pour création MDP
- Lecture durée token depuis AppConfigService
- Création automatique entités Parents
- Statut EN_ATTENTE par défaut
- Intégration AppConfigModule dans AuthModule
- Amélioration méthode login() (vérif statut + password null)
📋 WORKFLOW CDC CONFORME:
- Inscription SANS mot de passe
- Token envoyé par email (TODO)
- Validation gestionnaire requise
- Support co-parent avec même adresse
Réf: docs/20_WORKFLOW-CREATION-COMPTE.md
Ticket: #9 (ou #16 )
2025-11-30 16:09:54 +01:00
1fb8c33cbf
feat(backend): service gestion documents légaux #8
...
- Création entité DocumentLegal
- Création entité AcceptationDocument
- Création DocumentsLegauxService avec méthodes:
* getDocumentsActifs()
* uploadNouvelleVersion() (avec hash SHA-256)
* activerVersion() (transaction)
* listerVersions()
* telechargerDocument()
* verifierIntegrite()
* enregistrerAcceptation()
* getAcceptationsUtilisateur()
- Création DocumentsLegauxModule
- Intégration dans AppModule
- Ajout dépendances multer + @types/multer
Réf: docs/22_DOCUMENTS-LEGAUX.md
2025-11-30 15:50:38 +01:00
80afe2fa2f
feat(backend): service de configuration avec cache et encryption ( #5 )
...
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
2025-11-28 16:29:33 +01:00
33d6e7b0c3
feat: Intégration du backend NestJS depuis YNOV
...
- Framework: NestJS avec TypeORM
- Authentification: JWT (access + refresh tokens)
- Gestion utilisateurs: CRUD complet avec validation
- Routes: auth, users, parents, assistantes maternelles
- Dockerfile pour conteneurisation
2025-11-24 15:44:07 +01:00