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
276 lines
6.0 KiB
Plaintext
276 lines
6.0 KiB
Plaintext
@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
|