Utilisateur
«abstract»
# id : int
# nom, prenom : String
# username, email : String
# motDePasse : String
# statut : EN_LIGNE | ABSENT
# dateCreation : Date
+ seConnecter() : boolean
+ seDeconnecter() : void
UtilisateurNormal
# telephone : String
# dateNaissance : Date
# sexe : String
# photoProfil : String
+ sInscrire() : int
+ consulterProfil()
+ modifierProfil()
+ scannerURL() / poserQuestion()
AdministrateurSysteme
+ bannirCompteUtilisateur()
+ bannirGroupe() : int
+ consulterSignalements()
+ gererRoles()
AdminGroupe
+ accepterDemande()
+ refuserDemande()
+ expulserMembre()
+ modifierGroupe()
Appartenance
«jointure»
- utilisateurId : int
- groupeId : int
- roleId : int
- dateAdhesion : Date
+ ajouterMembre()
+ supprimerMembre()
Amitie
«nouvelle classe»
- id : int
- demandeurId : int
- destinataireId : int
- statut : EN_ATTENTE |
ACCEPTE | BLOQUE
+ envoyerDemande()
+ accepter() / refuser()
Groupe
- id : int
- nom, description : String
- typeGroupe : String
- dateCreation : Date
+ creerGroupe() : int
+ modifierParametresGroupe()
+ supprimerGroupe() : int
+ consulterListeGroupes()
+ rejoindreGroupe() : int
+ gererCanaux()
Canal
«nouvelle classe»
- id : int
- nom : String
- groupeId : int
- type : TEXTE | VOCAL | ANNONCE
+ creerCanal() : int
+ supprimerCanal() : int
Role
«nouvelle classe»
- id : int
- groupeId : int
- nom : String
- couleur : String
- permissions : List
+ assignerRole()
+ modifierPermissions()
Conversation (DM)
«nouvelle classe»
- id : int
- utilisateur1Id : int
- utilisateur2Id : int
- dateCreation : Date
+ ouvrirConversation()
+ archiverConversation()
Fichier
«nouvelle classe»
- id : int
- messageId : int
- nom : String
- type : IMAGE | AUDIO
VIDEO | DOC
- data : BLOB
- taille : long
+ uploadFichier()
Message
- id : int
- contenu : String
- type : TEXT | AUDIO | FILE
- canalId : int (nullable)
- conversationId : int (nullable)
- senderId : int
- messageParentId : int
- dateEnvoi : Date
+ envoyer() / modifier() / supprimer()
+ repondre() : int
Reaction
«nouvelle classe»
- id : int
- messageId : int
- utilisateurId : int
- emoji : String
- date : Date
+ ajouterReaction()
+ supprimerReaction()
Notification
- id : int
- userId : int
- messageId : int (nullable)
- contenu : String
- date : Date
+ creerNotification()
+ consulterNotifications()
Signalement
- id : int
- raison : String
- dateSignalement : Date
- statut : int
- cibleId : int
- cibleType : USER | MSG
+ signalerContenu() : int
+ signalerMembre() : int
+ consulterSignalements()
1..N
1..N
1..N
0..N
1..N
1..N msgs
0..N
0..N
1..N
déclenche
0..N
1 role
Légende
Classes originales
Nouvelles classes
Groupe / Canal
Héritage
Association
Dépendance