⚙️ 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.