# Progression Spec 001 : Mutuelles + Anti-blanchiment LCB-FT **Branche** : `001-mutuelles-anti-blanchiment` **Dernière mise à jour** : 2026-03-13 **Statut global** : **41% complété** (11/27 tâches) --- ## 📊 Vue d'ensemble | Phase | Tâches | Statut | Détails | |-------|--------|--------|---------| | **Phase 1 - API** | 6/6 | ✅ **100%** | DTOs et enums LCB-FT | | **Phase 2 - Migrations** | 5/5 | ✅ **100%** | V3.4 déjà existante | | **Phase 3 - Impl Quarkus** | 0/6 | 🔄 **0%** | Services + validation | | **Phase 4 - Mobile** | 0/7 | ⏳ **0%** | Écrans + KYC | | **Phase 5 - Finition** | 0/3 | ⏳ **0%** | Tests + docs | | **TOTAL** | **11/27** | 🎯 **41%** | | --- ## ✅ Phase 1 - API (100% complétée) **Commit** : `309edc4` **Date** : 2026-03-13 ### Réalisations #### T001-T002 : DTOs Transaction Épargne ✅ - ✅ `TransactionEpargneRequest` : champs déjà présents - `origineFonds` (String) - Origine des fonds - `pieceJustificativeId` (String) - ID pièce justificative - ✅ `TransactionEpargneResponse` : champs en lecture - Traçabilité complète **Fichiers** : - `unionflow-server-api/.../dto/mutuelle/epargne/TransactionEpargneRequest.java` - `unionflow-server-api/.../dto/mutuelle/epargne/TransactionEpargneResponse.java` #### T003 : Enums et champs KYC membre ✅ - ✅ `NiveauVigilanceKyc` : SIMPLIFIE, RENFORCE - ✅ `StatutKyc` : NON_VERIFIE, EN_COURS, VERIFIE, REFUSE - ✅ `MembreResponse` : niveauVigilanceKyc, statutKyc, dateVerificationIdentite **Fichiers** : - `unionflow-server-api/.../enums/membre/NiveauVigilanceKyc.java` - `unionflow-server-api/.../enums/membre/StatutKyc.java` - `unionflow-server-api/.../dto/membre/response/MembreResponse.java` #### T004 : DTOs Paiement LCB-FT ✅ - ✅ `TypeObjetIntentionPaiement` étendu : - Ajout : `RETRAIT_EPARGNE`, `CREDIT_REMBOURSEMENT` - ✅ 3 DTOs étendus avec `origineFonds` + `justificationLcbFt` : - `InitierDepotEpargneRequest` - `DeclarerPaiementManuelRequest` - `InitierPaiementEnLigneRequest` **Fichiers** : - `unionflow-server-api/.../enums/paiement/TypeObjetIntentionPaiement.java` - `unionflow-server-api/.../dto/paiement/request/` (3 fichiers) #### T005 : Paramètres LCB-FT (seuils) ✅ - ✅ `ParametresLcbFtRequest` créé - montantSeuilJustification - montantSeuilValidationManuelle - codeDevise - ✅ `ParametresLcbFtResponse` créé - Pour organisation ou plateforme **Fichiers** : - `unionflow-server-api/.../dto/config/request/ParametresLcbFtRequest.java` - `unionflow-server-api/.../dto/config/response/ParametresLcbFtResponse.java` #### T006 : Inventaire mis à jour ✅ - ✅ Ajout DTOs config et paiement - ✅ Validation champs existants - ✅ Date consolidation : 2026-03-13 --- ## ✅ Phase 2 - Migrations Flyway (100% complétée) **Migration** : `V3.4__LCB_FT_Anti_Blanchiment.sql` (déjà existante) **Statut** : Validation effectuée, aucune modification nécessaire ### Contenu vérifié #### T007 : Colonnes membres KYC ✅ ```sql ALTER TABLE utilisateurs ADD COLUMN niveau_vigilance_kyc VARCHAR(20) DEFAULT 'SIMPLIFIE', ADD COLUMN statut_kyc VARCHAR(20) DEFAULT 'NON_VERIFIE', ADD COLUMN date_verification_identite DATE; ``` - ✅ Contraintes CHECK (valeurs enum) - ✅ Index sur statut_kyc - ✅ Commentaires SQL #### T008 : Transactions épargne LCB-FT ✅ ```sql ALTER TABLE transactions_epargne ADD COLUMN origine_fonds VARCHAR(200), ADD COLUMN piece_justificative_id UUID; ``` - ✅ Conditionnelle (IF table exists) - ✅ Commentaires SQL #### T009 : Intentions paiement LCB-FT ✅ ```sql ALTER TABLE intentions_paiement ADD COLUMN origine_fonds VARCHAR(200), ADD COLUMN justification_lcb_ft TEXT; ``` #### T010 : Table parametres_lcb_ft ✅ ```sql CREATE TABLE parametres_lcb_ft ( id UUID PRIMARY KEY, organisation_id UUID, montant_seuil_justification DECIMAL(18,4), montant_seuil_validation_manuelle DECIMAL(18,4), code_devise VARCHAR(3), ... ); ``` - ✅ FK organisation (cascade) - ✅ Index unique org+devise - ✅ **Valeur par défaut plateforme** : 500k/1M XOF - ✅ Colonnes audit complètes #### T011 : Inventaire migrations ✅ - ✅ V3.4 documentée dans inventaire-code.md **Fichier** : - `unionflow-server-impl-quarkus/src/main/resources/db/legacy-migrations/V3.4__LCB_FT_Anti_Blanchiment.sql` --- ## ⏳ Phase 3 - Impl Quarkus (0% - À démarrer) ### Tâches restantes #### T012 : Lecture paramètres LCB-FT depuis BDD - Créer `ParametresLcbFtService` / `ParametresLcbFtRepository` - Récupération seuils par organisation ou plateforme - Cache pour performance #### T013 : Validation seuils transactions épargne - Dans `TransactionEpargneService` - Si montant >= seuil : exiger `origineFonds` (non vide) - Rejet 400 avec message clair si manquant #### T014 : Audit opérations mutuelles - Enregistrement audit_logs - Portée ORGANISATION - Détails : montant, type, membre, seuil franchi #### T015 : Vérification KYC crédit (optionnel) - Avant déblocage crédit - Vérifier `dateVerificationIdentite` à jour #### T016 : Ressource alertes LCB-FT (optionnel) - Dépassement seuil - Motif vide au-dessus seuil #### T017 : Endpoint paramètres LCB-FT pour mobile - `GET /api/parametres-lcb-ft` - Mobile récupère seuils pour validation client --- ## ⏳ Phase 4 - Mobile (0% - À démarrer) ### Tâches restantes #### 4.1 Épargne – Seuil et champs LCB-FT ##### T018 : Récupération seuil depuis API - Appel endpoint paramètres LCB-FT - Stockage seuil dans état BLoC ##### T019 : Formulaires dépôt/retrait/transfert - Champ `origineFonds` obligatoire si montant >= seuil - Validation côté client ##### T020 : Upload pièce justificative - Ajout champ upload dans dialogs - Envoi `pieceJustificativeId` dans request ##### T021 : Gestion erreurs 400 côté mobile - Message clair si origine fonds manquante #### 4.2 Fiche membre – Affichage KYC ##### T022 : Étendre modèle membre mobile - `MembreModel` avec champs KYC - niveauVigilanceKyc, statutKyc, dateVerificationIdentite ##### T023 : Affichage fiche membre - Lecture seule statut KYC - Date vérification identité ##### T024 : Validation données API uniquement - Pas de valeurs en dur --- ## ⏳ Phase 5 - Finition (0% - À démarrer) ### Tâches restantes #### T025 : Mise à jour inventaire mobile - Nouveaux modèles et écrans - Constantes LCB-FT #### T026 : Vérification absence données fictives - Audit complet - Listes en dur supprimées #### T027 : Tests backend et mobile - Tests unitaires services - Tests intégration - Correction régressions --- ## 🎯 Prochaines étapes recommandées ### Court terme (session suivante) 1. **T012** - Implémenter `ParametresLcbFtService` 2. **T013** - Ajouter validation seuils dans `TransactionEpargneService` 3. **T017** - Créer endpoint REST paramètres LCB-FT ### Moyen terme 4. **T014** - Audit opérations mutuelles 5. **Phase 4** - Écrans mobile (7 tâches) ### Long terme 6. **T015-T016** - Fonctionnalités optionnelles 7. **Phase 5** - Tests et finition --- ## 📚 Références - **Spec** : `specs/001-mutuelles-anti-blanchiment/spec.md` - **Plan** : `specs/001-mutuelles-anti-blanchiment/plan.md` - **Tasks** : `specs/001-mutuelles-anti-blanchiment/tasks.md` - **Migration** : `unionflow-server-impl-quarkus/.../V3.4__LCB_FT_Anti_Blanchiment.sql` --- ## 🔖 Notes importantes ### Conformité BCEAO/OHADA/LCB-FT - ✅ Traçabilité complète (origine fonds, pièce justificative) - ✅ Seuils configurables (par org ou plateforme) - ✅ KYC membre (vigilance, statut, date vérification) - ✅ Conservation 10 ans (audit_logs V2.9) - ⏳ Alertes dépassement seuil (Phase 3) ### Zéro données fictives - ✅ API : Pas de mock, données réelles uniquement - ✅ Migrations : Valeur par défaut plateforme 500k/1M XOF - ⏳ Mobile : À vérifier en Phase 4 ### Architecture - ✅ API/Impl séparés (unionflow-server-api / impl-quarkus) - ✅ Clean Architecture mobile (domain/data/presentation) - ✅ DI avec GetIt/Injectable - ✅ BLoC pattern --- **Dernière révision** : 2026-03-13 **Auteur** : lions dev Team