import 'package:flutter/material.dart';
import 'package:prosapp_web_app/models/chat_entity.dart';
import 'package:prosapp_web_app/models/message_entity.dart';
import 'package:prosapp_web_app/repositories/firebase_chat_repository.dart';

class ChatProvider with ChangeNotifier {
  final FirebaseChatRepository _firebaseChatRepository =
      FirebaseChatRepository();

  ChatEntity? _currentChat;
  ChatEntity? get currentChat => _currentChat;

  Stream<ChatEntity?> getChat(String chatId, String professionalId) {
    return _firebaseChatRepository.getChatById(chatId, professionalId).map((chat) {
      _currentChat = chat;
      notifyListeners();
      return chat;
    });
  }

  Future<ChatEntity> createChat(
      String chatId, String userId, String professionalId) async {
    final chat = await _firebaseChatRepository.createNewChat(
        chatId, userId, professionalId);
    _currentChat = chat;
    notifyListeners();
    return chat;
  }

  Future<void> sendMessage(String chatId, MessageEntity message) async {
    await _firebaseChatRepository.sendMessage(chatId, message);
    notifyListeners();
  }
}
