2.3 KiB
2.3 KiB
Module Chat GEOSECTOR
Structure du module
Le module chat est organisé selon une architecture modulaire respectant la séparation des préoccupations :
lib/chat/
├── models/ # Modèles de données
│ ├── conversation_model.dart
│ ├── message_model.dart
│ ├── participant_model.dart
│ └── audience_target_model.dart
├── repositories/ # Gestion des données
│ └── chat_repository.dart
├── services/ # Services techniques
│ ├── chat_api_service.dart
│ └── offline_queue_service.dart
├── widgets/ # Composants UI
│ ├── chat_screen.dart
│ ├── conversations_list.dart
│ ├── message_bubble.dart
│ └── chat_input.dart
├── pages/ # Pages de l'application
│ └── chat_page.dart
├── chat.dart # Point d'entrée avec exports
└── README.md # Documentation du module
Fonctionnalités principales
- Conversations : Support des conversations one-to-one, groupes et annonces
- Messages : Envoi/réception de messages texte et pièces jointes
- Participants : Gestion des participants aux conversations
- Annonces : Diffusion de messages à des groupes spécifiques
- Mode hors ligne : File d'attente pour la synchronisation des données
Utilisation
Importation
import 'package:geosector/chat/chat.dart';
Affichage de la page chat
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const ChatPage()),
);
Création d'une conversation
final chatRepository = ChatRepository();
final conversation = await chatRepository.createConversation({
'type': 'one_to_one',
'participants': [userId1, userId2],
});
États d'implémentation
- Structure de base
- Modèles de données complets
- Intégration avec Hive
- Services API
- Gestion hors ligne
- Widgets visuels
- Tests unitaires
À faire
- Compléter l'implémentation des modèles avec les adaptateurs Hive
- Implémenter les méthodes dans les services et repositories
- Créer les widgets visuels avec le design approprié
- Ajouter les adaptateurs Hive pour le stockage local
- Implémenter la gestion des pièces jointes
- Ajouter les tests unitaires