Files
unionflow-server-api/unionflow/specs/001-mutuelles-anti-blanchiment/PROGRESSION.md
dahoud 6ba710401c docs: mise à jour PROGRESSION.md - Phase 3 complétée (56% total)
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
2026-03-15 02:34:36 +00:00

9.6 KiB
Raw Blame History

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é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

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

  • ParametresLcbFtRepository déjà existant
  • ParametresLcbFtService créé avec :
    • getParametres() : params complets (avec cache)
    • getSeuilJustification() : seuil rapide (avec cache)
    • saveOrUpdateParametres() : CRUD
    • Fallback 500k XOF par défaut
  • Cache Quarkus @CacheResult pour 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 IllegalArgumentException avec 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_logs si montant >= seuil
    • Portée ORGANISATION
    • Détails : orgId, operateurId, compteId, montant, origineFonds

Fichier :

  • unionflow-server-impl-quarkus/.../service/AuditService.java (existant)

T015 : Vérification KYC crédit OPTIONNEL (skip)

  • Vérification dateVerificationIdentite avant 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

  • ParametresLcbFtResource créé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 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

  1. T014 - Audit opérations mutuelles
  2. Phase 4 - Écrans mobile (7 tâches)

Long terme

  1. T015-T016 - Fonctionnalités optionnelles
  2. 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