# 📋 TODO List - Module Chat v1.0.0 ## 🎯 Objectif Aligner le module chat avec l'API backend et optimiser l'expérience utilisateur. ## 📊 État d'avancement global : 8/13 (62%) --- ## 🔴 PRIORITÉ HAUTE - Fonctionnalités essentielles ### 1. ✅ Pagination des messages - **Description** : Implémenter la pagination avec limit=50 et paramètre `before` - **Endpoint** : `GET /api/chat/rooms/{id}/messages?limit=50&before={message_id}` - **Fichiers** : `chat_service.dart`, `chat_page.dart` - **Statut** : ✅ COMPLÉTÉ ### 2. ✅ Chargement progressif - **Description** : Ajouter bouton "Charger plus" en haut de la conversation - **UI** : Bouton ou indicateur en haut de la liste des messages - **Fichiers** : `chat_page.dart` - **Statut** : ✅ COMPLÉTÉ ### 3. ✅ Gestion du flag has_more - **Description** : Gérer la réponse API pour savoir s'il reste des messages - **Logique** : Désactiver "Charger plus" si `has_more: false` - **Fichiers** : `message.dart`, `chat_service.dart` - **Statut** : ✅ COMPLÉTÉ --- ## 🟠 PRIORITÉ MOYENNE - Amélioration UX ### 4. ✅ Message initial à la création - **Description** : Ajouter `initial_message` lors de la création d'une room - **Endpoint** : `POST /api/chat/rooms` avec body `{..., "initial_message": "..."}` - **Fichiers** : `chat_service.dart`, `recipient_selector.dart` - **Statut** : ✅ COMPLÉTÉ ### 5. ⬜ Extraction infos chat du login - **Description** : Récupérer `total_rooms`, `unread_messages` depuis la réponse login - **Intégration** : Stocker dans Hive ou service global - **Fichiers** : `user_repository.dart`, `chat_service.dart` - **Temps estimé** : 20 min ### 6. ⬜ Badge messages non lus - **Description** : Afficher un badge rouge avec le nombre sur l'icône chat - **UI** : Badge sur NavigationDestination et dans la sidebar - **Fichiers** : `responsive_navigation.dart`, `admin_dashboard_page.dart` - **Temps estimé** : 15 min ### 7. ✅ Pull-to-refresh RoomsPage - **Description** : Ajouter RefreshIndicator pour rafraîchir la liste des rooms - **Geste** : Tirer vers le bas pour recharger - **Fichiers** : `rooms_page.dart` - **Statut** : ✅ COMPLÉTÉ (déjà implémenté) ### 8. ✅ Pull-to-refresh ChatPage - **Description** : Ajouter RefreshIndicator pour rafraîchir les messages - **Geste** : Tirer vers le bas pour recharger les derniers messages - **Fichiers** : `chat_page.dart` - **Statut** : ✅ COMPLÉTÉ --- ## 🟡 PRIORITÉ BASSE - Optimisations ### 9. ✅ Optimiser cache Hive - **Description** : Limiter à 100 messages max par room dans le cache - **Logique** : Supprimer les plus anciens si > 100 - **Fichiers** : `chat_service.dart` - **Statut** : ✅ COMPLÉTÉ ### 10. ⬜ Optimiser le polling - **Description** : Polling actif seulement si la page chat est visible - **Optimisation** : Pause/reprise selon WidgetsBindingObserver - **Fichiers** : `chat_service.dart`, `rooms_page.dart` - **Temps estimé** : 15 min ### 11. ✅ Indicateurs de chargement - **Description** : Ajouter spinners lors du chargement de la pagination - **UI** : CircularProgressIndicator pendant les requêtes - **Fichiers** : `chat_page.dart` - **Statut** : ✅ COMPLÉTÉ ### 12. ⬜ Auto-refresh au retour - **Description** : Rafraîchir quand l'app revient au premier plan - **Implémentation** : WidgetsBindingObserver avec AppLifecycleState - **Fichiers** : `chat_module.dart`, `rooms_page.dart` - **Temps estimé** : 10 min --- ## 📚 DOCUMENTATION ### 13. ⬜ Mettre à jour README.md - **Description** : Documenter toutes les nouvelles fonctionnalités - **Sections** : Pagination, pull-to-refresh, badges, optimisations - **Fichiers** : `README.md` - **Temps estimé** : 15 min --- ## ⏱️ Temps total restant : ~1h ## 🚀 Ordre de développement recommandé ### Phase 1 : Core ✅ COMPLÉTÉ 1. Pagination des messages ✅ 2. Chargement progressif ✅ 3. Gestion has_more ✅ ### Phase 2 : Intégration (En cours) 4. Message initial ✅ 5. Infos chat login ⬜ 6. Badge non lus ⬜ 7. Pull-to-refresh rooms ✅ 8. Pull-to-refresh chat ✅ ### Phase 3 : Polish (Partiellement complété) 9. Optimiser cache ✅ 10. Optimiser polling ⬜ 11. Indicateurs chargement ✅ 12. Auto-refresh ⬜ ### Phase 4 : Documentation 13. README.md ⬜ --- ## 📝 Notes - **Version actuelle** : 1.0.0 - **Date de création** : 2025-01-17 - **Dernière mise à jour** : 2025-01-17 - **Développeur** : Module Chat Team ## 🔗 Références - [API Documentation](../../../docs/API_CHAT.md) - [Architecture Flutter](../README.md) - [Permissions YAML](../chat_config.yaml) ## ✨ Améliorations implémentées ### Pagination - Limite de 50 messages par requête - Paramètre `before` pour charger les messages plus anciens - Gestion du flag `has_more` pour indiquer s'il reste des messages - Bouton "Charger plus" en haut de la conversation ### Optimisations cache - Limitation à 100 messages maximum par room dans Hive - Suppression automatique des messages les plus anciens - Méthode `_saveMessagesToCache` dédiée ### Message initial - Champ de texte ajouté dans le dialog de sélection des destinataires - Paramètre `initial_message` dans les méthodes de création de room - Support dans l'API pour envoyer le message initial ### Pull-to-refresh - RefreshIndicator dans RoomsPage (déjà existant) - RefreshIndicator dans ChatPage pour rafraîchir les messages - Rechargement complet des messages récents ### Indicateurs de chargement - Spinner pendant le chargement de la pagination - État `_isLoadingMore` pour gérer l'affichage - CircularProgressIndicator de taille réduite