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
2c746ceff3
fix(front,db,ci): déploiement web, API même origine, Flutter 3.29, schéma validations
...
Frontend (prod web):
- Image builder Flutter 3.29.3 (Dockerfile + workflow CI alignés)
- web/index.html: bootstrap Flutter 3.29 (flutter_bootstrap.js), scripts pdf.js conservés
- Dockerfile: rm html avant COPY pour éviter l’index « Welcome to nginx »
- nginx: server_name _ pour Traefik
- env: sur le web, API = Uri.base.origin si pas de API_BASE_URL (évite mixed content http/https)
- auth: message d’erreur réseau avec type/détail si non-Exception
- CGU/PDF: commentaire sans mention Flutter 3.19 obsolète
- pubspec.lock: résolution dépendances Flutter 3.29
Base de données & doc:
- BDD.sql: validations.commentaire, valide_par, FK ON DELETE SET NULL + commentaire
- patch 2026-04-17: valide_par avec ON DELETE SET NULL
- patch 2026-04-18: FK validations en SET NULL sur bases existantes
- seed: statut validation « valide » (enum)
- FK_POLICIES.md: valide_par
- doc workflow: Flutter 3.29.3
Made-with: Cursor
2026-04-22 18:48:17 +02:00
f2daab1325
fix(db): validations — colonnes commentaire et valide_par
...
- BDD.sql alignée sur l’entité TypeORM
- Patch SQL pour bases existantes + README patches
Made-with: Cursor
2026-04-17 18:49:44 +02:00
58607cdbc9
feat(inscription AM #120 ): UI étape pro, photo unifiée, scripts et données test
...
- Panneau AM : validation NIR alignée API, date d’agrément requise côté app,
capacité 1–10, n° agrément + date sur une ligne, ville/pays formatés au blur.
- Widget RegistrationPhotoSlot (cadre, croix) partagé avec les cartes enfant.
- AuthService : MIME PNG/JPEG pour la photo ; payload date_agrement.
- Scripts register-am-dubois / mansouri ; chemins tests/ressources/photos ;
doc test-data + seed ; smoke curl inscription AM.
Made-with: Cursor
2026-04-13 13:19:32 +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
077a1ca3ed
fix(bdd): genre_type inclut Autre (alignement API inscription enfants)
...
Made-with: Cursor
2026-03-31 00:08:41 +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
447f3d4137
fix( #102 ): 02_seed - ajouter nir_chiffre à l'INSERT assistantes_maternelles (NOT NULL)
...
Made-with: Cursor
2026-02-26 13:53:41 +01:00
a9c6b9e15b
feat( #102 ): BDD nir_chiffre NOT NULL + migration pour bases existantes
...
Made-with: Cursor
2026-02-26 12:56:15 +01:00
3dbddbb8c4
feat( #102 ): seed NIR Marie 2A (Corse Ajaccio), Fatima 99 (étranger), doc
...
Made-with: Cursor
2026-02-26 11:23:59 +01:00
d697083f54
feat(database): add Relais table to initialization script
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 14:34:45 +01:00
3892a8beab
feat( #92 ): seed données de test dashboard admin + script reset BDD
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 17:27:26 +01:00
e0debf0394
docs: README BDD seed/reset, liste tickets #92 , procédure API Gitea, statut application
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 17:26:13 +01:00
31bd8c3175
fix( #90 ): BDD assistantes_maternelles alignée entité + script test curl
...
- BDD.sql: ville_residence, annee_experience, specialite, date_agrement nullable
- scripts/test-register-am.sh pour tester POST /auth/register/am
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 16:18:06 +01:00
c5028c3b22
feat( #75 ): Seed Super Administrateur par défaut ( #76 )
...
Co-authored-by: Julien Martin <julien.martin@ptits-pas.fr>
Co-committed-by: Julien Martin <julien.martin@ptits-pas.fr>
2026-01-27 15:07:22 +00:00
bebd3c74da
feat(bdd): ajout tables documents_legaux et acceptations_documents #7
...
- Création table documents_legaux (versioning + hash SHA-256)
- Création table acceptations_documents (traçabilité RGPD)
- Ajout colonnes dans utilisateurs (cgu_version_acceptee, etc.)
- Seed documents génériques v1 (CGU + Privacy)
- Index pour performance
Réf: docs/22_DOCUMENTS-LEGAUX.md
2025-11-30 15:34:28 +01:00
47dbe94b02
feat(bdd): ajout table configuration système ( #4 )
...
Ajout de la table configuration pour la gestion dynamique
de la configuration on-premise de l'application.
Structure :
- Table configuration (clé/valeur avec types)
- Index sur cle et categorie pour performance
- Contrainte UNIQUE sur cle
- Référence vers utilisateurs pour traçabilité
Données initiales (seed) :
- Configuration Email (SMTP) : 8 paramètres
- Configuration Application : 4 paramètres
- Configuration Sécurité : 4 paramètres
Types supportés :
- string : chaînes de caractères
- number : nombres entiers/décimaux
- boolean : true/false
- json : objets JSON
- encrypted : valeurs chiffrées AES-256
Catégories :
- email : Configuration SMTP
- app : Paramètres application
- security : Paramètres de sécurité
Base de données recréée et testée ✅
16 configurations insérées par défaut ✅
Ref: #4
2025-11-28 16:19:46 +01:00
40b1eb2192
feat(bdd): conformité CDC v1.3 - schéma unifié ( #3 )
...
Modifications du schéma BDD.sql :
Table utilisateurs :
- password devient NULLABLE (créé après validation via token)
- Ajout token_creation_mdp + token_creation_mdp_expire_le
- telephone unifié (suppression mobile/telephone_fixe)
- Ajout index sur token_creation_mdp
Table assistantes_maternelles :
- date_agrement devient NOT NULL (obligatoire)
- Suppression annee_experience
- Suppression specialite
Table enfants :
- genre devient NOT NULL (obligatoire H/F)
Autres modifications :
- docker-compose.yml : pointage vers BDD.sql unifié
- Suppression des anciens fichiers de migration (01-07)
- Base de données recréée et testée ✅
Ref: #3
2025-11-28 16:00:17 +01:00
bbf73458cb
feat: Intégration de la base de données PostgreSQL depuis YNOV
...
- Structure complète: utilisateurs, parents, assmat, enfants, contrats
- Migrations SQL avec enums et contraintes
- Seed: 1 super_admin (admin@ptits-pas.fr )
- Mot de passe: 4dm1n1strateur (hash bcrypt)
2025-11-24 15:44:39 +01:00