✨ 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>
59 lines
1.7 KiB
Dart
Executable File
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();
|
|
}
|
|
} |