Files
geo/app/lib/chat/chat_module.dart
Pierre 3443277d4a feat: Release version 3.1.4 - Mode terrain et génération PDF
 Nouvelles fonctionnalités:
- Ajout du mode terrain pour utilisation mobile hors connexion
- Génération automatique de reçus PDF avec template personnalisé
- Révision complète du système de cartes avec amélioration des performances

🔧 Améliorations techniques:
- Refactoring du module chat avec architecture simplifiée
- Optimisation du système de sécurité NIST SP 800-63B
- Amélioration de la gestion des secteurs géographiques
- Support UTF-8 étendu pour les noms d'utilisateurs

📱 Application mobile:
- Nouveau mode terrain dans user_field_mode_page
- Interface utilisateur adaptative pour conditions difficiles
- Synchronisation offline améliorée

🗺️ Cartographie:
- Optimisation des performances MapBox
- Meilleure gestion des tuiles hors ligne
- Amélioration de l'affichage des secteurs

📄 Documentation:
- Ajout guide Android (ANDROID-GUIDE.md)
- Documentation sécurité API (API-SECURITY.md)
- Guide module chat (CHAT_MODULE.md)

🐛 Corrections:
- Résolution des erreurs 400 lors de la création d'utilisateurs
- Correction de la validation des noms d'utilisateurs
- Fix des problèmes de synchronisation chat

🤖 Generated with Claude Code (https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-19 19:38:03 +02:00

59 lines
1.7 KiB
Dart
Executable File

import 'package:flutter/material.dart';
import 'services/chat_service.dart';
import 'pages/rooms_page.dart';
import 'pages/chat_page.dart';
/// Module de chat autonome avec gestion des rôles
///
/// Les permissions sont gérées via le fichier chat_config.yaml
class ChatModule {
/// Initialiser le module chat avec support des rôles
///
/// @param apiUrl URL de base de l'API
/// @param userId ID de l'utilisateur connecté
/// @param userName Nom de l'utilisateur
/// @param userRole Rôle de l'utilisateur (1: membre, 2: admin amicale, 9: superadmin)
/// @param userEntite ID de l'entité/amicale de l'utilisateur (optionnel)
/// @param authToken Token JWT d'authentification (optionnel)
static Future<void> init({
required String apiUrl,
required int userId,
required String userName,
required int userRole,
int? userEntite,
String? authToken,
}) async {
await ChatService.init(
apiUrl: apiUrl,
userId: userId,
userName: userName,
userRole: userRole,
userEntite: userEntite,
authToken: authToken,
);
}
/// Obtenir la page de liste des conversations
static Widget getRoomsPage() => const RoomsPage();
/// Obtenir la page de chat pour une room spécifique
static Widget getChatPage(String roomId, String roomTitle) => ChatPage(
roomId: roomId,
roomTitle: roomTitle,
);
/// Naviguer vers le chat depuis n'importe où
static void openChat(BuildContext context) {
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) => const RoomsPage(),
),
);
}
/// Nettoyer les ressources
static void dispose() {
ChatService.instance.dispose();
}
}