Phase 3 terminée : 67% (4/6 tâches, 2 optionnelles skip) - T012 ✅ ParametresLcbFtService créé - T013 ✅ Validation seuils (existante) - T014 ✅ Audit opérations (existant) - T017 ✅ Endpoint REST mobile Progression globale : 15/27 tâches (56%) Signed-off-by: lions dev Team
9.6 KiB
9.6 KiB
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 | 4/6 | ✅ 67% | Services + endpoints |
| Phase 4 - Mobile | 0/7 | ⏳ 0% | Écrans + KYC |
| Phase 5 - Finition | 0/3 | ⏳ 0% | Tests + docs |
| TOTAL | 15/27 | 🎯 56% |
✅ 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ésentsorigineFonds(String) - Origine des fondspieceJustificativeId(String) - ID pièce justificative
- ✅
TransactionEpargneResponse: champs en lecture- Traçabilité complète
Fichiers :
unionflow-server-api/.../dto/mutuelle/epargne/TransactionEpargneRequest.javaunionflow-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.javaunionflow-server-api/.../enums/membre/StatutKyc.javaunionflow-server-api/.../dto/membre/response/MembreResponse.java
T004 : DTOs Paiement LCB-FT ✅
- ✅
TypeObjetIntentionPaiementétendu :- Ajout :
RETRAIT_EPARGNE,CREDIT_REMBOURSEMENT
- Ajout :
- ✅ 3 DTOs étendus avec
origineFonds+justificationLcbFt:InitierDepotEpargneRequestDeclarerPaiementManuelRequestInitierPaiementEnLigneRequest
Fichiers :
unionflow-server-api/.../enums/paiement/TypeObjetIntentionPaiement.javaunionflow-server-api/.../dto/paiement/request/(3 fichiers)
T005 : Paramètres LCB-FT (seuils) ✅
- ✅
ParametresLcbFtRequestcréé- montantSeuilJustification
- montantSeuilValidationManuelle
- codeDevise
- ✅
ParametresLcbFtResponsecréé- Pour organisation ou plateforme
Fichiers :
unionflow-server-api/.../dto/config/request/ParametresLcbFtRequest.javaunionflow-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 ✅
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 ✅
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 ✅
ALTER TABLE intentions_paiement
ADD COLUMN origine_fonds VARCHAR(200),
ADD COLUMN justification_lcb_ft TEXT;
T010 : Table parametres_lcb_ft ✅
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 (67% complétée)
Commit : eb729bd (sous-module unionflow-server-impl-quarkus)
Date : 2026-03-13
Réalisations
T012 : Service ParametresLcbFtService ✅
- ✅
ParametresLcbFtRepositorydéjà existant - ✅
ParametresLcbFtServicecréé avec :getParametres(): params complets (avec cache)getSeuilJustification(): seuil rapide (avec cache)saveOrUpdateParametres(): CRUD- Fallback 500k XOF par défaut
- ✅ Cache Quarkus
@CacheResultpour performance
Fichiers :
unionflow-server-impl-quarkus/.../service/ParametresLcbFtService.java(nouveau)unionflow-server-impl-quarkus/.../repository/ParametresLcbFtRepository.java(existant)
T013 : Validation seuils transactions épargne ✅
- ✅
TransactionEpargneService.validerLcbFtSiSeuilAtteint()déjà implémentée- Vérifie montant >= seuil
- Exige
origineFonds(non vide) si seuil atteint - Rejet
IllegalArgumentExceptionavec message clair - Validation longueur max (ValidationConstants)
- ✅ Récupération seuil depuis
ParametresLcbFtRepository
Fichier :
unionflow-server-impl-quarkus/.../service/mutuelle/epargne/TransactionEpargneService.java(existant)
T014 : Audit opérations mutuelles ✅
- ✅
AuditService.logLcbFtSeuilAtteint()déjà implémenté- Appelé dans
TransactionEpargneService - Enregistre dans
audit_logssi montant >= seuil - Portée ORGANISATION
- Détails : orgId, operateurId, compteId, montant, origineFonds
- Appelé dans
Fichier :
unionflow-server-impl-quarkus/.../service/AuditService.java(existant)
T015 : Vérification KYC crédit ⏩ OPTIONNEL (skip)
- Vérification
dateVerificationIdentiteavant déblocage crédit - Non critique pour MVP
T016 : Ressource alertes LCB-FT ⏩ OPTIONNEL (skip)
- Alertes dépassement seuil / motif vide
- Peut être ajouté en Phase 2 de la spec
T017 : Resource ParametresLcbFtResource ✅
- ✅
ParametresLcbFtResourcecréée avec 3 endpoints :GET /api/parametres-lcb-ft: params complets (@PermitAll pour mobile)GET /api/parametres-lcb-ft/seuil-justification: seuil uniquement (endpoint léger)POST /api/parametres-lcb-ft: CRUD admin (@RolesAllowed ADMIN/SUPER_ADMIN)
- ✅ Documentation OpenAPI/Swagger complète
- ✅ Validation Jakarta Bean Validation
Fichier :
unionflow-server-impl-quarkus/.../resource/ParametresLcbFtResource.java(nouveau)
Tâches optionnelles skippées (T015, T016)
Ces tâches ne sont pas critiques pour le MVP de la spec 001 et peuvent être ajoutées ultérieurement si nécessaire.
⏳ 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
origineFondsobligatoire si montant >= seuil - Validation côté client
T020 : Upload pièce justificative
- Ajout champ upload dans dialogs
- Envoi
pieceJustificativeIddans 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
MembreModelavec 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)
- T012 - Implémenter
ParametresLcbFtService - T013 - Ajouter validation seuils dans
TransactionEpargneService - T017 - Créer endpoint REST paramètres LCB-FT
Moyen terme
- T014 - Audit opérations mutuelles
- Phase 4 - Écrans mobile (7 tâches)
Long terme
- T015-T016 - Fonctionnalités optionnelles
- 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