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.