- Ajout système complet de gestion des secteurs avec contours géographiques - Import des contours départementaux depuis GeoJSON - API REST pour la gestion des secteurs (/api/sectors) - Service de géolocalisation pour déterminer les secteurs - Migration base de données avec tables x_departements_contours et sectors_adresses - Interface Flutter pour visualisation et gestion des secteurs - Ajout thème sombre dans l'application - Corrections diverses et optimisations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
83 lines
2.3 KiB
Markdown
Executable File
83 lines
2.3 KiB
Markdown
Executable File
# 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
|
|
|
|
1. **Conversations** : Support des conversations one-to-one, groupes et annonces
|
|
2. **Messages** : Envoi/réception de messages texte et pièces jointes
|
|
3. **Participants** : Gestion des participants aux conversations
|
|
4. **Annonces** : Diffusion de messages à des groupes spécifiques
|
|
5. **Mode hors ligne** : File d'attente pour la synchronisation des données
|
|
|
|
## Utilisation
|
|
|
|
### Importation
|
|
|
|
```dart
|
|
import 'package:geosector/chat/chat.dart';
|
|
```
|
|
|
|
### Affichage de la page chat
|
|
|
|
```dart
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(builder: (context) => const ChatPage()),
|
|
);
|
|
```
|
|
|
|
### Création d'une conversation
|
|
|
|
```dart
|
|
final chatRepository = ChatRepository();
|
|
final conversation = await chatRepository.createConversation({
|
|
'type': 'one_to_one',
|
|
'participants': [userId1, userId2],
|
|
});
|
|
```
|
|
|
|
## États d'implémentation
|
|
|
|
- [x] Structure de base
|
|
- [ ] Modèles de données complets
|
|
- [ ] Intégration avec Hive
|
|
- [ ] Services API
|
|
- [ ] Gestion hors ligne
|
|
- [ ] Widgets visuels
|
|
- [ ] Tests unitaires
|
|
|
|
## À faire
|
|
|
|
1. Compléter l'implémentation des modèles avec les adaptateurs Hive
|
|
2. Implémenter les méthodes dans les services et repositories
|
|
3. Créer les widgets visuels avec le design approprié
|
|
4. Ajouter les adaptateurs Hive pour le stockage local
|
|
5. Implémenter la gestion des pièces jointes
|
|
6. Ajouter les tests unitaires
|