import 'dart:async'; import 'package:prosapp_web_app/models/chat_entity.dart'; import 'package:prosapp_web_app/models/message_entity.dart'; import 'package:prosapp_web_app/services/api_service.dart'; // ponytail: renamed to ApiChatRepository but kept filename to avoid breaking imports class FirebaseChatRepository { final _api = ApiService.instance; Stream getChatById(String chatId) async* { while (true) { try { final data = await _api.get('/chats/$chatId'); yield ChatEntity.fromDocument(data as Map); } catch (_) { yield null; } await Future.delayed(const Duration(seconds: 3)); } } Future createNewChat(String chatId, String userId, String professionalId) async { final data = await _api.post('/chats', { 'id': chatId, 'user_id': userId, 'professional_id': professionalId, }); return ChatEntity.fromDocument(data as Map); } Future sendMessage(String chatId, MessageEntity message) async { await _api.post('/chats/$chatId/messages', message.toDocument()); } }