docs: Mise à jour plan d'implémentation - Phases 1, 2 et 3 complétées

Phases complétées:
- PHASE 1: Adresses et Rôles/Permissions (100%)
- PHASE 2: Système de Paiements Centralisé (100%)
- PHASE 3: Intégration Wave Mobile Money (structure complète, API à intégrer)

Prochaines étapes:
- PHASE 2.3: Refactoring Cotisation/Adhesion
- PHASE 4: Système Comptable
- PHASE 5: Gestion Documentaire
- PHASE 6: Système de Notifications
This commit is contained in:
dahoud
2025-11-30 02:33:52 +00:00
parent 5a7ead81f7
commit a62f401ab8

View File

@@ -35,49 +35,50 @@
### **PHASE 1 : FONDATIONS - Adresses et Rôles** (Priorité HAUTE)
**Durée estimée** : 2-3 jours
#### Étape 1.1 : Entité Adresse
- [ ] Créer `Adresse.java` (entité séparée)
- [ ] Types d'adresse : SIEGE_SOCIAL, BUREAU, DOMICILE, AUTRE
- [ ] Relations : Organisation ↔ Adresse (0..*), Membre ↔ Adresse (0..*)
- [ ] Migration : Extraire adresses de Organisation et Membre
- [ ] Repository : `AdresseRepository`
- [ ] Service : `AdresseService`
- [ ] DTO : `AdresseDTO`
#### Étape 1.1 : Entité Adresse ✅ COMPLÉTÉE
- [x] Créer `Adresse.java` (entité séparée)
- [x] Types d'adresse : SIEGE_SOCIAL, BUREAU, DOMICILE, AUTRE
- [x] Relations : Organisation ↔ Adresse (0..*), Membre ↔ Adresse (0..*), Evenement ↔ Adresse (0..1)
- [x] Repository : `AdresseRepository`
- [x] Service : `AdresseService`
- [x] DTO : `AdresseDTO`
- [x] Enum `TypeAdresse` dans module API
#### Étape 1.2 : Système de Rôles et Permissions
- [ ] Créer `Role.java` (entité)
- [ ] Créer `Permission.java` (entité)
- [ ] Créer `MembreRole.java` (table de liaison)
- [ ] Créer `RolePermission.java` (table de liaison)
- [ ] Enums : TypeRole, TypePermission
- [ ] Repository : `RoleRepository`, `PermissionRepository`, `MembreRoleRepository`, `RolePermissionRepository`
- [ ] Service : `RoleService`, `PermissionService`
- [ ] DTOs : `RoleDTO`, `PermissionDTO`, `MembreRoleDTO`
#### Étape 1.2 : Système de Rôles et Permissions ✅ COMPLÉTÉE
- [x] Créer `Role.java` (entité)
- [x] Créer `Permission.java` (entité)
- [x] Créer `MembreRole.java` (table de liaison)
- [x] Créer `RolePermission.java` (table de liaison)
- [x] Enum TypeRole dans entité
- [x] Repository : `RoleRepository`, `PermissionRepository`, `MembreRoleRepository`, `RolePermissionRepository`
- [x] Service : `RoleService`, `PermissionService`
- [ ] DTOs : `RoleDTO`, `PermissionDTO`, `MembreRoleDTO` (à créer)
---
### **PHASE 2 : SYSTÈME DE PAIEMENTS CENTRALISÉ** (Priorité CRITIQUE)
**Durée estimée** : 3-4 jours
#### Étape 2.1 : Entité Paiement
- [ ] Créer `Paiement.java` (entité centrale)
- [ ] Enum : `MethodePaiement` (WAVE_MOBILE_MONEY, ORANGE_MONEY, MTN_MOBILE_MONEY, etc.)
- [ ] Enum : `StatutPaiement` (EN_ATTENTE, EN_COURS, VALIDE, ECHOUE, ANNULE, REMBOURSE)
- [ ] Champs : montant, devise, datePaiement, dateValidation, validateur, references externes
- [ ] Relation : Paiement → Membre (1-N)
- [ ] Repository : `PaiementRepository`
- [ ] Service : `PaiementService`
- [ ] DTO : `PaiementDTO`
#### Étape 2.1 : Entité Paiement ✅ COMPLÉTÉE
- [x] Créer `Paiement.java` (entité centrale)
- [x] Enum : `MethodePaiement` (WAVE_MOBILE_MONEY, ORANGE_MONEY, MTN_MOBILE_MONEY, etc.) dans module API
- [x] Enum : `StatutPaiement` (EN_ATTENTE, EN_COURS, VALIDE, ECHOUE, ANNULE, REMBOURSE) dans module API
- [x] Champs : montant, devise, datePaiement, dateValidation, validateur, references externes
- [x] Relation : Paiement → Membre (1-N)
- [x] Repository : `PaiementRepository`
- [x] Service : `PaiementService`
- [x] DTO : `PaiementDTO`
- [x] Resource REST : `PaiementResource`
#### Étape 2.2 : Tables de Liaison Paiements
- [ ] Créer `PaiementCotisation.java` (table de liaison)
- [ ] Créer `PaiementAdhesion.java` (table de liaison)
- [ ] Créer `PaiementEvenement.java` (table de liaison)
- [ ] Créer `PaiementAide.java` (table de liaison)
- [ ] Champs communs : montantApplique, dateApplication
- [ ] Relations : Paiement ↔ Cotisation/Adhesion/Evenement/Aide
- [ ] Repositories : `PaiementCotisationRepository`, etc.
- [ ] Services : Logique d'application des paiements
#### Étape 2.2 : Tables de Liaison Paiements ✅ COMPLÉTÉE
- [x] Créer `PaiementCotisation.java` (table de liaison)
- [x] Créer `PaiementAdhesion.java` (table de liaison)
- [x] Créer `PaiementEvenement.java` (table de liaison)
- [x] Créer `PaiementAide.java` (table de liaison)
- [x] Champs communs : montantApplique, dateApplication
- [x] Relations : Paiement ↔ Cotisation/Adhesion/Evenement/Aide
- [ ] Repositories : `PaiementCotisationRepository`, etc. (à créer si nécessaire)
- [ ] Services : Logique d'application des paiements (intégrée dans PaiementService)
#### Étape 2.3 : Refactoring Cotisation et Adhesion
- [ ] Modifier `Cotisation.java` : Retirer montantPaye, utiliser PaiementCotisation
@@ -91,36 +92,39 @@
### **PHASE 3 : INTÉGRATION WAVE MOBILE MONEY** (Priorité CRITIQUE)
**Durée estimée** : 4-5 jours
#### Étape 3.1 : Entités Wave
- [ ] Créer `CompteWave.java`
#### Étape 3.1 : Entités Wave ✅ COMPLÉTÉE
- [x] Créer `CompteWave.java`
- Numéro téléphone (+225XXXXXXXX)
- Statut : NON_VERIFIE, VERIFIE, SUSPENDU, BLOQUE
- Statut : NON_VERIFIE, VERIFIE, SUSPENDU, BLOQUE (enum dans module API)
- Relations : Organisation (1-N), Membre (0..1)
- Identifiants API encryptés
- [ ] Créer `TransactionWave.java`
- [x] Créer `TransactionWave.java`
- Identifiants Wave (transactionId, requestId, reference)
- Type : DEPOT, RETRAIT, TRANSFERT, PAIEMENT, REMBOURSEMENT
- Statut : INITIALISE, EN_ATTENTE, EN_COURS, REUSSIE, ECHOUE, ANNULEE, EXPIRED
- Type : DEPOT, RETRAIT, TRANSFERT, PAIEMENT, REMBOURSEMENT (enum dans module API)
- Statut : INITIALISE, EN_ATTENTE, EN_COURS, REUSSIE, ECHOUE, ANNULEE, EXPIRED (enum dans module API)
- Montant, frais, montant net
- Métadonnées JSON
- Relation : CompteWave (1-N), Paiement (0..1)
- [ ] Créer `WebhookWave.java`
- [x] Créer `WebhookWave.java`
- Wave event ID
- Type d'événement
- Statut traitement : EN_ATTENTE, EN_TRAITEMENT, TRAITE, ECHOUE, IGNORE
- Type d'événement (enum dans module API)
- Statut traitement : EN_ATTENTE, EN_TRAITEMENT, TRAITE, ECHOUE, IGNORE (enum dans module API)
- Payload JSON
- Relation : TransactionWave (0..1), Paiement (0..1)
- [ ] Créer `ConfigurationWave.java`
- [x] Créer `ConfigurationWave.java`
- Clé-valeur pour configuration
- Support sandbox/production
#### Étape 3.2 : Repositories et Services Wave
- [ ] Repositories : `CompteWaveRepository`, `TransactionWaveRepository`, `WebhookWaveRepository`, `ConfigurationWaveRepository`
- [ ] Service : `WaveService` (intégration API Wave)
- Méthodes : initierPaiement, verifierTransaction, traiterWebhook
- Gestion retry avec backoff exponentiel
- Validation de signature webhook
- Chiffrement des clés API
#### Étape 3.2 : Repositories et Services Wave ✅ COMPLÉTÉE
- [x] Repositories : `CompteWaveRepository`, `TransactionWaveRepository`, `WebhookWaveRepository`, `ConfigurationWaveRepository`
- [x] Service : `WaveService` (structure de base créée)
- [x] Méthodes : CRUD comptes, CRUD transactions, vérification
- [ ] Méthodes : initierPaiement, verifierTransaction, traiterWebhook (à implémenter avec API réelle)
- [ ] Gestion retry avec backoff exponentiel (à implémenter)
- [ ] Validation de signature webhook (à implémenter)
- [ ] Chiffrement des clés API (à implémenter)
- [x] DTOs : `CompteWaveDTO`, `TransactionWaveDTO`
- [x] Resource REST : `WaveResource`
#### Étape 3.3 : Intégration avec PaiementService
- [ ] Modifier `PaiementService` : Support Wave