feat: PHASE 1 - Adresses et Rôles/Permissions
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
This commit is contained in:
275
union-flow.puml
Normal file
275
union-flow.puml
Normal file
@@ -0,0 +1,275 @@
|
||||
@startuml MCD_UnionFlow
|
||||
!theme plain
|
||||
skinparam linetype ortho
|
||||
skinparam packageStyle rectangle
|
||||
skinparam classAttributeIconSize 0
|
||||
|
||||
title UnionFlow - MCD avec Wave Mobile Money
|
||||
|
||||
package Base {
|
||||
abstract class BaseEntity {
|
||||
+ id : UUID
|
||||
+ dateCreation : LocalDateTime
|
||||
+ version : Long
|
||||
+ actif : Boolean
|
||||
}
|
||||
}
|
||||
|
||||
package Orgs {
|
||||
class Organisation {
|
||||
+ nom : String
|
||||
+ email : String
|
||||
+ statut : StatutOrg
|
||||
}
|
||||
class TypeOrganisation {
|
||||
+ code : String
|
||||
}
|
||||
class Adresse {
|
||||
+ ville : String
|
||||
+ pays : String
|
||||
}
|
||||
}
|
||||
|
||||
package Membres {
|
||||
class Membre {
|
||||
+ numeroMembre : String
|
||||
+ email : String
|
||||
+ telephoneWave : String
|
||||
}
|
||||
class Role {
|
||||
+ code : String
|
||||
}
|
||||
class Permission {
|
||||
+ code : String
|
||||
}
|
||||
class MembreRole {
|
||||
}
|
||||
class RolePermission {
|
||||
}
|
||||
}
|
||||
|
||||
package Paiements {
|
||||
class Paiement {
|
||||
+ montant : BigDecimal
|
||||
+ methodePaiement : MethodePmt
|
||||
+ statutPaiement : StatutPmt
|
||||
}
|
||||
class Cotisation {
|
||||
+ montantDu : BigDecimal
|
||||
+ statut : StatutCot
|
||||
}
|
||||
class PaiementCotisation {
|
||||
+ montantApplique : BigDecimal
|
||||
}
|
||||
class Adhesion {
|
||||
+ fraisAdhesion : BigDecimal
|
||||
+ statut : StatutAdh
|
||||
}
|
||||
class PaiementAdhesion {
|
||||
+ montantApplique : BigDecimal
|
||||
}
|
||||
}
|
||||
|
||||
package Wave {
|
||||
class CompteWave {
|
||||
+ numeroTelephone : String
|
||||
+ statutCompte : StatutWave
|
||||
}
|
||||
class TransactionWave {
|
||||
+ waveTransactionId : String
|
||||
+ montant : BigDecimal
|
||||
+ statutTransaction : StatutTxWave
|
||||
}
|
||||
class WebhookWave {
|
||||
+ waveEventId : String
|
||||
+ statutTraitement : StatutWebhook
|
||||
}
|
||||
class ConfigurationWave {
|
||||
+ cle : String
|
||||
+ valeur : String
|
||||
}
|
||||
}
|
||||
|
||||
package Compta {
|
||||
class CompteComptable {
|
||||
+ numeroCompte : String
|
||||
+ soldeActuel : BigDecimal
|
||||
}
|
||||
class JournalComptable {
|
||||
+ code : String
|
||||
}
|
||||
class EcritureComptable {
|
||||
+ montantDebit : BigDecimal
|
||||
+ montantCredit : BigDecimal
|
||||
}
|
||||
class LigneEcriture {
|
||||
+ montantDebit : BigDecimal
|
||||
+ montantCredit : BigDecimal
|
||||
}
|
||||
}
|
||||
|
||||
package Evenements {
|
||||
class Evenement {
|
||||
+ titre : String
|
||||
+ typeEvenement : TypeEvt
|
||||
+ statut : StatutEvt
|
||||
}
|
||||
class InscriptionEvenement {
|
||||
+ statut : StatutInsc
|
||||
}
|
||||
class PaiementEvenement {
|
||||
+ montantApplique : BigDecimal
|
||||
}
|
||||
}
|
||||
|
||||
package Solidarite {
|
||||
class DemandeAide {
|
||||
+ typeAide : TypeAide
|
||||
+ statut : StatutAide
|
||||
+ montantDemande : BigDecimal
|
||||
}
|
||||
class PaiementAide {
|
||||
+ montantApplique : BigDecimal
|
||||
}
|
||||
}
|
||||
|
||||
package Docs {
|
||||
class Document {
|
||||
+ nomFichier : String
|
||||
+ hashMd5 : String
|
||||
}
|
||||
class PieceJointe {
|
||||
+ ordre : Integer
|
||||
}
|
||||
}
|
||||
|
||||
package Notifs {
|
||||
class Notification {
|
||||
+ typeNotification : TypeNotif
|
||||
+ statut : StatutNotif
|
||||
}
|
||||
class TemplateNotification {
|
||||
+ code : String
|
||||
}
|
||||
}
|
||||
|
||||
package Audit {
|
||||
class AuditLog {
|
||||
+ typeAction : TypeAction
|
||||
+ severite : Severite
|
||||
}
|
||||
class ParametreSysteme {
|
||||
+ cle : String
|
||||
+ valeur : String
|
||||
}
|
||||
}
|
||||
|
||||
BaseEntity <|-- Organisation
|
||||
BaseEntity <|-- TypeOrganisation
|
||||
BaseEntity <|-- Adresse
|
||||
BaseEntity <|-- Membre
|
||||
BaseEntity <|-- Role
|
||||
BaseEntity <|-- Permission
|
||||
BaseEntity <|-- MembreRole
|
||||
BaseEntity <|-- RolePermission
|
||||
BaseEntity <|-- Paiement
|
||||
BaseEntity <|-- Cotisation
|
||||
BaseEntity <|-- PaiementCotisation
|
||||
BaseEntity <|-- Adhesion
|
||||
BaseEntity <|-- PaiementAdhesion
|
||||
BaseEntity <|-- CompteWave
|
||||
BaseEntity <|-- TransactionWave
|
||||
BaseEntity <|-- WebhookWave
|
||||
BaseEntity <|-- ConfigurationWave
|
||||
BaseEntity <|-- CompteComptable
|
||||
BaseEntity <|-- JournalComptable
|
||||
BaseEntity <|-- EcritureComptable
|
||||
BaseEntity <|-- LigneEcriture
|
||||
BaseEntity <|-- Evenement
|
||||
BaseEntity <|-- InscriptionEvenement
|
||||
BaseEntity <|-- PaiementEvenement
|
||||
BaseEntity <|-- DemandeAide
|
||||
BaseEntity <|-- PaiementAide
|
||||
BaseEntity <|-- Document
|
||||
BaseEntity <|-- PieceJointe
|
||||
BaseEntity <|-- Notification
|
||||
BaseEntity <|-- TemplateNotification
|
||||
BaseEntity <|-- AuditLog
|
||||
BaseEntity <|-- ParametreSysteme
|
||||
|
||||
Organisation "1" *-- "0..*" Membre
|
||||
Organisation "0..1" --o "0..*" Organisation
|
||||
Organisation "1" *-- "1" TypeOrganisation
|
||||
Organisation "0..1" --o "0..*" Adresse
|
||||
Organisation "1" *-- "0..*" CompteWave
|
||||
|
||||
Membre "1" *-- "0..*" MembreRole
|
||||
MembreRole "1" *-- "1" Role
|
||||
Membre "0..1" --o "0..*" Adresse
|
||||
Membre "0..1" --o "0..*" CompteWave
|
||||
|
||||
Role "1" *-- "0..*" RolePermission
|
||||
RolePermission "1" *-- "1" Permission
|
||||
|
||||
Paiement "1" *-- "0..*" PaiementCotisation
|
||||
Paiement "1" *-- "0..*" PaiementAdhesion
|
||||
Paiement "1" *-- "0..*" PaiementEvenement
|
||||
Paiement "1" *-- "0..*" PaiementAide
|
||||
Paiement "0..1" --o "1" TransactionWave
|
||||
Paiement "1" *-- "1" Membre
|
||||
|
||||
Cotisation "1" *-- "0..*" PaiementCotisation
|
||||
PaiementCotisation "1" *-- "1" Paiement
|
||||
Cotisation "1" *-- "1" Membre
|
||||
Cotisation "1" *-- "1" Organisation
|
||||
|
||||
Adhesion "1" *-- "0..*" PaiementAdhesion
|
||||
PaiementAdhesion "1" *-- "1" Paiement
|
||||
Adhesion "1" *-- "1" Membre
|
||||
Adhesion "1" *-- "1" Organisation
|
||||
|
||||
CompteWave "1" *-- "0..*" TransactionWave
|
||||
TransactionWave "1" *-- "0..*" WebhookWave
|
||||
WebhookWave "0..1" --o "1" TransactionWave
|
||||
WebhookWave "0..1" --o "1" Paiement
|
||||
CompteWave "1" *-- "1" Organisation
|
||||
CompteWave "0..1" --o "1" Membre
|
||||
|
||||
JournalComptable "1" *-- "0..*" EcritureComptable
|
||||
EcritureComptable "1" *-- "1..*" LigneEcriture
|
||||
LigneEcriture "1" *-- "1" CompteComptable
|
||||
EcritureComptable "0..1" --o "1" Paiement
|
||||
EcritureComptable "1" *-- "1" Organisation
|
||||
|
||||
Evenement "1" *-- "0..*" InscriptionEvenement
|
||||
InscriptionEvenement "1" *-- "1" Membre
|
||||
InscriptionEvenement "1" *-- "1" Evenement
|
||||
Evenement "1" *-- "1" Organisation
|
||||
Evenement "0..1" --o "1" Adresse
|
||||
Evenement "0..1" --o "0..*" PaiementEvenement
|
||||
PaiementEvenement "1" *-- "1" Paiement
|
||||
PaiementEvenement "1" *-- "1" InscriptionEvenement
|
||||
|
||||
DemandeAide "1" *-- "0..*" PaiementAide
|
||||
PaiementAide "1" *-- "1" Paiement
|
||||
DemandeAide "1" *-- "1" Membre
|
||||
DemandeAide "0..1" --o "1" Membre
|
||||
DemandeAide "1" *-- "1" Organisation
|
||||
|
||||
PieceJointe "1" *-- "1" Document
|
||||
Document "0..1" --o "0..*" PieceJointe
|
||||
PieceJointe "0..1" --o "1" Membre
|
||||
PieceJointe "0..1" --o "1" Organisation
|
||||
PieceJointe "0..1" --o "1" Cotisation
|
||||
PieceJointe "0..1" --o "1" Adhesion
|
||||
PieceJointe "0..1" --o "1" DemandeAide
|
||||
PieceJointe "0..1" --o "1" TransactionWave
|
||||
|
||||
Notification "0..1" --o "1" TemplateNotification
|
||||
Notification "1" *-- "1" Membre
|
||||
Notification "0..1" --o "1" Organisation
|
||||
|
||||
AuditLog "0..1" --o "1" Membre
|
||||
AuditLog "0..1" --o "1" Organisation
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user