import '../../../../core/errors/result.dart';
import '../../domain/entities/chat.dart';
import '../../domain/entities/message.dart';

abstract class ChatRemoteDataSource {
  Future<Result<List<Chat>>> getChats({String? currentUserId});
  Future<Result<Chat>> getChatById(String chatId);
  Future<Result<Chat>> createPersonalChat(String userId);
  Future<Result<Chat>> createGroupChat(String name, List<String> memberIds);
  Future<Result<Chat>> getOrCreateFavorites();
  Future<Result<Message>> sendMessage(String chatId, String content, {String? type, List<Map<String, dynamic>>? attachments});
  Future<Result<List<Message>>> getMessages(String chatId, {String? cursor});
  Future<Result<void>> togglePin(String chatId);
  Future<Result<void>> clearChat(String chatId);
}
