Skip to main content

⚙️ Configurations

📋 Vue d'ensemble

Le module Configurations permet aux administrateurs de gérer toutes les configurations système. Il comprend 6 sous-modules spécialisés pour la gestion des données de référence et des paramètres système.

🏗️ Architecture

  • Queue NATS : admin-service
  • Patterns : locations.*, vehicle-types.*, complaint-types.*, etc.
  • Données de référence : Pays, états, types de véhicules
  • Configuration système : Paramètres globaux
  • Cache : Optimisation des performances

📍 1. Locations Management

Patterns NATS : locations.*

Lister les Pays

Pattern : locations.countries.all

{
"page": 1,
"limit": 50,
"search": "Cameroun",
"sortBy": "name",
"sortOrder": "asc"
}

Lister les États/Régions

Pattern : locations.states.all

{
"countryId": 15,
"page": 1,
"limit": 20,
"search": "Littoral",
"sortBy": "name",
"sortOrder": "asc"
}

Créer un Pays

Pattern : locations.countries.create

{
"name": "Nouveau Pays",
"code": "NP",
"phoneCode": "+999",
"currency": "XAF",
"isActive": true
}

Créer un État/Région

Pattern : locations.states.create

{
"name": "Nouvelle Région",
"code": "NR",
"countryId": 15,
"isActive": true
}

🚗 2. Vehicle Types Management

Patterns NATS : vehicle-types.*

Lister les Types de Véhicules

Pattern : vehicle-types.all

{
"page": 1,
"limit": 10,
"category": "TRUCK",
"search": "Mercedes",
"sortBy": "name",
"sortOrder": "asc"
}

Créer un Type de Véhicule

Pattern : vehicle-types.create

{
"name": "Camion 40 tonnes",
"category": "TRUCK",
"capacity": "40000",
"unit": "kg",
"description": "Camion poids lourd pour transport longue distance",
"specifications": {
"maxWeight": "40000 kg",
"dimensions": "12m x 2.5m x 4m",
"fuelType": "Diesel",
"enginePower": "400 CV"
},
"isActive": true
}

Mettre à jour un Type de Véhicule

Pattern : vehicle-types.update

{
"id": "vehicle-type-uuid",
"updateData": {
"name": "Camion 45 tonnes",
"capacity": "45000",
"specifications": {
"maxWeight": "45000 kg",
"dimensions": "13m x 2.5m x 4m",
"fuelType": "Diesel",
"enginePower": "450 CV"
}
}
}

📋 3. Complaint Types Management

Patterns NATS : complaint-types.*

Lister les Types de Plaintes

Pattern : complaint-types.all

{
"page": 1,
"limit": 10,
"category": "DELIVERY",
"search": "retard",
"sortBy": "name",
"sortOrder": "asc"
}

Créer un Type de Plainte

Pattern : complaint-types.create

{
"name": "Retard de livraison",
"category": "DELIVERY",
"description": "Plainte concernant un retard dans la livraison",
"priority": "MEDIUM",
"autoAssignTo": "delivery-team-uuid",
"slaHours": 24,
"isActive": true
}

💬 4. Forum Categories Management

Patterns NATS : forum-categories.*

Lister les Catégories du Forum

Pattern : forum-categories.all

{
"page": 1,
"limit": 10,
"search": "transport",
"sortBy": "order",
"sortOrder": "asc"
}

Créer une Catégorie de Forum

Pattern : forum-categories.create

{
"name": "Transport International",
"description": "Discussions sur le transport international",
"icon": "🌍",
"color": "#3498db",
"order": 5,
"isActive": true,
"permissions": {
"canPost": ["CLIENT", "DRIVER", "ADMIN"],
"canModerate": ["ADMIN"]
}
}

📢 5. Announcement Categories Management

Patterns NATS : announcement-categories.*

Lister les Catégories d'Annonces

Pattern : announcement-categories.all

{
"page": 1,
"limit": 10,
"search": "maintenance",
"sortBy": "name",
"sortOrder": "asc"
}

Créer une Catégorie d'Annonce

Pattern : announcement-categories.create

{
"name": "Maintenance Système",
"description": "Annonces relatives à la maintenance du système",
"icon": "🔧",
"color": "#e74c3c",
"priority": "HIGH",
"isActive": true
}

🎓 6. Tutorial Categories Management

Patterns NATS : tutorial-categories.*

Lister les Catégories de Tutoriels

Pattern : tutorial-categories.all

{
"page": 1,
"limit": 10,
"search": "débutant",
"sortBy": "order",
"sortOrder": "asc"
}

Créer une Catégorie de Tutoriel

Pattern : tutorial-categories.create

{
"name": "Guide Débutant",
"description": "Tutoriels pour les nouveaux utilisateurs",
"icon": "🎯",
"color": "#2ecc71",
"level": "BEGINNER",
"order": 1,
"isActive": true
}

📊 Statistiques Globales

Pattern : configurations.stats

{
"success": true,
"message": "Configuration statistics retrieved successfully",
"result": {
"locations": {
"totalCountries": 195,
"activeCountries": 180,
"totalStates": 1250,
"activeStates": 1200
},
"vehicleTypes": {
"totalTypes": 25,
"activeTypes": 22,
"byCategory": [
{"category": "TRUCK", "count": 15},
{"category": "VAN", "count": 8},
{"category": "MOTORCYCLE", "count": 2}
]
},
"complaintTypes": {
"totalTypes": 12,
"activeTypes": 10,
"byCategory": [
{"category": "DELIVERY", "count": 5},
{"category": "PAYMENT", "count": 3},
{"category": "SERVICE", "count": 4}
]
},
"forumCategories": {
"totalCategories": 8,
"activeCategories": 7,
"totalTopics": 245,
"totalMessages": 1850
},
"announcementCategories": {
"totalCategories": 6,
"activeCategories": 5,
"totalAnnouncements": 50
},
"tutorialCategories": {
"totalCategories": 5,
"activeCategories": 4,
"totalTutorials": 35
}
}
}

🔧 Opérations Communes

Activer/Désactiver un Élément

Tous les modules supportent l'activation/désactivation :

{
"id": "element-uuid",
"statusData": {
"isActive": false,
"reason": "Temporairement désactivé pour maintenance"
}
}

Opérations en Lot

{
"ids": ["uuid1", "uuid2", "uuid3"],
"action": "activate",
"actionData": {
"isActive": true,
"comment": "Réactivation en lot après maintenance"
}
}

🚀 Fonctionnalités Avancées

1. Cache Intelligent

  • Mise en cache : Données de référence fréquemment utilisées
  • Invalidation automatique : Lors des modifications
  • Performance optimisée : Réduction des accès DB
  • TTL configurable : Durée de vie du cache

2. Validation et Contraintes

  • Unicité : Noms et codes uniques
  • Références : Vérification des dépendances
  • Format : Validation des données
  • Cohérence : Intégrité référentielle

3. Historique et Audit

  • Traçabilité : Toutes les modifications
  • Versioning : Historique des changements
  • Rollback : Restauration possible
  • Audit trail : Conformité réglementaire

4. Import/Export

  • Import en masse : Fichiers CSV/Excel
  • Export : Sauvegarde des configurations
  • Synchronisation : Entre environnements
  • Validation : Avant import

💡 Exemples d'Utilisation

Ajouter un Nouveau Pays

{
"name": "Gabon",
"code": "GA",
"phoneCode": "+241",
"currency": "XAF",
"isActive": true
}

Créer un Type de Véhicule Spécialisé

{
"name": "Camion Frigorifique",
"category": "TRUCK",
"capacity": "25000",
"unit": "kg",
"description": "Camion avec système de réfrigération",
"specifications": {
"maxWeight": "25000 kg",
"temperature": "-18°C à +2°C",
"fuelType": "Diesel",
"refrigerationSystem": "Carrier Transicold"
},
"isActive": true
}

Configurer une Catégorie de Plainte Urgente

{
"name": "Accident de Transport",
"category": "EMERGENCY",
"description": "Plainte urgente concernant un accident",
"priority": "URGENT",
"autoAssignTo": "emergency-team-uuid",
"slaHours": 1,
"isActive": true
}

🎯 Le module Configurations fournit une gestion centralisée de toutes les données de référence et paramètres système avec des outils d'administration complets, cache intelligent et fonctionnalités d'import/export pour une maintenance efficace.