Skip to main content

💬 Forum Moderation

📋 Vue d'ensemble​

Le module Forum Moderation permet aux administrateurs de modérer le forum communautaire. Il gère les catégories, sujets, messages et signalements avec des outils de modération avancés.

🏗️ Architecture​

  • Queue NATS : admin-service
  • Patterns : forum.*
  • Modération : Outils complets pour les administrateurs
  • Signalements : Système de reporting communautaire
  • Statistiques : Analytics détaillées du forum

📡 Message Patterns NATS​

1. Lister les Catégories​

Pattern : forum.categories.all

Payload (CategoryQueryDto)​

{
"page": 1,
"limit": 10,
"search": "transport",
"sortBy": "createdAt",
"sortOrder": "desc"
}

Réponse​

{
"success": true,
"message": "Categories retrieved successfully",
"result": {
"data": [
{
"id": 1,
"publicId": "cat-uuid",
"name": "Transport Routier",
"description": "Discussions sur le transport routier",
"topicsCount": 25,
"messagesCount": 150,
"createdAt": "2024-01-01T00:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 5,
"totalPages": 1
}
}
}

2. Lister les Sujets​

Pattern : forum.topics.all

Payload (TopicQueryDto)​

{
"page": 1,
"limit": 10,
"categoryId": 1,
"status": "ACTIVE",
"search": "problème livraison",
"sortBy": "lastActivity",
"sortOrder": "desc"
}

Filtres Disponibles​

FiltreTypeDescription
categoryIdNumberFiltrer par catégorie
statusStringStatut du sujet (ACTIVE, LOCKED, DELETED)
isPinnedBooleanSujets épinglés uniquement
searchStringRecherche dans titre et contenu

3. Lister les Messages​

Pattern : forum.messages.all

Payload (MessageQueryDto)​

{
"page": 1,
"limit": 20,
"topicId": 1,
"status": "ACTIVE",
"search": "merci",
"sortBy": "createdAt",
"sortOrder": "asc"
}

4. Modérer un Sujet​

Pattern : forum.topics.moderate

Payload​

{
"id": "topic-uuid",
"action": "lock",
"reason": "Contenu inapproprié signalé par plusieurs utilisateurs"
}

Actions de Modération​

ActionDescriptionEffet
lockVerrouiller le sujetEmpêche nouveaux messages
unlockDéverrouiller le sujetAutorise nouveaux messages
pinÉpingler le sujetAffichage en haut de liste
unpinDésépingler le sujetRetour à l'ordre normal
deleteSupprimer le sujetSuppression logique
restoreRestaurer le sujetAnnule la suppression

5. Modérer un Message​

Pattern : forum.messages.moderate

Payload​

{
"id": "message-uuid",
"action": "hide",
"reason": "Langage inapproprié"
}

Actions de Modération​

ActionDescriptionEffet
hideMasquer le messageInvisible pour les utilisateurs
showAfficher le messageVisible pour les utilisateurs
deleteSupprimer le messageSuppression logique
restoreRestaurer le messageAnnule la suppression

6. Lister les Signalements​

Pattern : forum.reports.all

Payload (ReportQueryDto)​

{
"page": 1,
"limit": 10,
"status": "PENDING",
"type": "MESSAGE",
"sortBy": "createdAt",
"sortOrder": "desc"
}

Types de Signalements​

TypeDescription
TOPICSignalement d'un sujet
MESSAGESignalement d'un message
USERSignalement d'un utilisateur

Statuts de Signalement​

StatutDescription
PENDINGEn attente de traitement
REVIEWEDExaminé par un modérateur
RESOLVEDRésolu avec action
DISMISSEDRejeté sans action

7. Traiter un Signalement​

Pattern : forum.reports.handle

Payload​

{
"id": "report-uuid",
"action": "resolve",
"resolution": "Message masqué pour contenu inapproprié",
"moderatorAction": {
"type": "hide_message",
"targetId": "message-uuid",
"reason": "Contenu inapproprié confirmé"
}
}

Actions de Résolution​

ActionDescription
resolveRésoudre avec action
dismissRejeter sans action
escalateEscalader vers niveau supérieur

8. Statistiques du Forum​

Pattern : forum.stats

Payload​

{
"period": "month"
}

Réponse​

{
"success": true,
"message": "Forum statistics retrieved successfully",
"result": {
"overview": {
"totalCategories": 8,
"totalTopics": 245,
"totalMessages": 1850,
"totalReports": 12,
"pendingReports": 3
},
"activity": {
"newTopicsThisMonth": 45,
"newMessagesThisMonth": 320,
"activeUsersThisMonth": 89
},
"moderation": {
"lockedTopics": 5,
"hiddenMessages": 8,
"resolvedReports": 9,
"dismissedReports": 0
},
"topCategories": [
{
"id": 1,
"name": "Transport Routier",
"topicsCount": 85,
"messagesCount": 650
}
]
}
}

📊 Enums et Statuts​

Statuts de Sujet (TopicStatus)​

enum TopicStatus {
ACTIVE = 'ACTIVE', // Actif
LOCKED = 'LOCKED', // Verrouillé
DELETED = 'DELETED' // Supprimé
}

Statuts de Message (MessageStatus)​

enum MessageStatus {
ACTIVE = 'ACTIVE', // Actif
HIDDEN = 'HIDDEN', // Masqué
DELETED = 'DELETED' // Supprimé
}

Types de Signalement (ReportType)​

enum ReportType {
TOPIC = 'TOPIC', // Signalement de sujet
MESSAGE = 'MESSAGE', // Signalement de message
USER = 'USER' // Signalement d'utilisateur
}

🛡️ Outils de Modération​

1. Modération Préventive​

  • Filtres automatiques : Détection de contenu inapproprié
  • Mots-clés interdits : Liste configurable
  • Limitation de fréquence : Anti-spam automatique
  • Validation manuelle : Pour nouveaux utilisateurs

2. Actions de Modération​

  • Verrouillage de sujets : Empêche nouveaux messages
  • Masquage de messages : Invisible pour utilisateurs
  • Épinglage : Mise en avant de sujets importants
  • Suppression logique : Préservation pour audit

3. Système de Signalement​

  • Signalement communautaire : Par les utilisateurs
  • Catégorisation : Types de problèmes
  • Workflow de traitement : Processus structuré
  • Historique complet : Traçabilité des actions

🚀 Fonctionnalités Avancées​

1. Analytics et Reporting​

  • Statistiques détaillées : Activité du forum
  • Tendances : Évolution dans le temps
  • Rapports de modération : Actions effectuées
  • Métriques d'engagement : Participation utilisateurs

2. Gestion des Utilisateurs​

  • Profils utilisateurs : Historique d'activité
  • Sanctions : Avertissements, suspensions
  • Réputation : Système de points
  • Badges : Reconnaissance communautaire

3. Configuration​

  • Règles du forum : Personnalisables
  • Permissions : Par rôle utilisateur
  • Notifications : Alertes modérateurs
  • Intégrations : Avec autres services

💡 Exemples d'Utilisation​

Verrouiller un Sujet Problématique​

{
"id": "topic-123",
"action": "lock",
"reason": "Discussion devenue trop polémique, verrouillage temporaire"
}

Traiter un Signalement​

{
"id": "report-456",
"action": "resolve",
"resolution": "Message masqué pour langage inapproprié",
"moderatorAction": {
"type": "hide_message",
"targetId": "message-789",
"reason": "Violation des règles de courtoisie"
}
}

Rechercher des Messages Suspects​

{
"page": 1,
"limit": 50,
"search": "spam",
"status": "ACTIVE",
"sortBy": "createdAt",
"sortOrder": "desc"
}

🎯 Le module Forum Moderation fournit tous les outils nécessaires pour maintenir un environnement de discussion sain et constructif avec des fonctionnalités de modération complètes et un système de signalement efficace.