PHASE 2 - Système de Paiements Centralisé:
- Entité Paiement centralisée avec enums MethodePaiement et StatutPaiement
- Tables de liaison: PaiementCotisation, PaiementAdhesion, PaiementEvenement, PaiementAide
- Repository PaiementRepository avec méthodes de recherche et calculs
- Relations bidirectionnelles avec Membre
PHASE 3 - Intégration Wave Mobile Money:
- Entités Wave: CompteWave, TransactionWave, WebhookWave, ConfigurationWave
- Enums: StatutCompteWave, TypeTransactionWave, StatutTransactionWave, TypeEvenementWebhook, StatutWebhook
- Repositories: CompteWaveRepository, TransactionWaveRepository, WebhookWaveRepository, ConfigurationWaveRepository
- Relations bidirectionnelles dans Organisation et Membre
- Ajout champ telephoneWave dans Membre
Respect strict DRY/WOU:
- Enums dans module API réutilisables
- Patterns de repository cohérents
- Relations JPA standardisées
- Numéro de référence auto-généré pour Paiement
PHASE 1.1 - Entité Adresse:
- Création entité Adresse avec types (SIEGE_SOCIAL, BUREAU, DOMICILE, AUTRE)
- Relations flexibles: Organisation, Membre, Evenement
- Enum TypeAdresse dans module API (DRY/WOU)
- Repository et Service AdresseService
- Relations bidirectionnelles mises à jour
PHASE 1.2 - Système Rôles et Permissions:
- Entité Role avec types (SYSTEME, ORGANISATION, PERSONNALISE)
- Entité Permission avec structure MODULE > RESSOURCE > ACTION
- Tables de liaison MembreRole et RolePermission
- Repositories pour toutes les entités
- Services RoleService et PermissionService
- Relations bidirectionnelles dans Membre
Respect strict DRY/WOU:
- Enums dans module API réutilisables
- Patterns de service cohérents
- Relations JPA standardisées
- numeroMembre : Marqué AUTO-GÉNÉRÉ, ne pas afficher dans formulaire création
- dateNaissance : Marquée AUTO-GÉNÉRÉE à il y a 18 ans si non fournie
- dateAdhesion : Marquée AUTO-GÉNÉRÉE à LocalDate.now() si non fournie
Documentation claire pour les développeurs frontend :
- Champs OBLIGATOIRES : nom, prénom, email, statut, associationId
- Champs OPTIONNELS : tous les autres
- Champs AUTO-GÉNÉRÉS : à ne pas afficher dans les formulaires de création
Cette documentation guide la création des formulaires pour ne demander
que les informations essentielles à l'utilisateur.
- numeroMembre : Retiré @NotBlank et @Pattern, maintenant optionnel (peut être généré auto)
- telephone : Retiré @Pattern strict, remplacé par @Size(max=20) pour format flexible
- Permet la création de membres avec des données de base
- Le profil pourra être complété progressivement sans être bloquant
Formats acceptés maintenant :
- Téléphone : tout format jusqu'à 20 caractères (ex: 77 123 45 67, +221771234567, etc.)
- Numéro membre : optionnel, peut être généré automatiquement par le système