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