import 'dart:developer'; import 'package:collection/collection.dart'; import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; import 'package:fluffychat/pangea/constants/pangea_room_types.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:fluffychat/pangea/models/space_model.dart'; import 'package:fluffychat/pangea/utils/bot_name.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/foundation.dart'; import 'package:matrix/matrix.dart'; part "client_analytics_extension.dart"; part "general_info_extension.dart"; part "space_extension.dart"; extension PangeaClient on Client { // analytics Future getMyAnalyticsRoom(String langCode) async => await _getMyAnalyticsRoom(langCode); Room? analyticsRoomLocal(String? langCode, [String? userIdParam]) => _analyticsRoomLocal(langCode, userIdParam); List get allMyAnalyticsRooms => _allMyAnalyticsRooms; Future updateAnalyticsRoomVisibility() async => await _updateAnalyticsRoomVisibility(); Future addAnalyticsRoomsToAllSpaces() async => await _addAnalyticsRoomsToAllSpaces(); Future inviteAllTeachersToAllAnalyticsRooms() async => await _inviteAllTeachersToAllAnalyticsRooms(); Future joinAnalyticsRoomsInAllSpaces() async => await _joinAnalyticsRoomsInAllSpaces(); Future joinInvitedAnalyticsRooms() async => await _joinInvitedAnalyticsRooms(); Future migrateAnalyticsRooms() async => await _migrateAnalyticsRooms(); Future> allAnalyticsRoomsLastUpdated() async => await _allAnalyticsRoomsLastUpdated(); // spaces Future> get spacesImTeaching async => await _spacesImTeaching; Future> get spacesImStudyingIn async => await _spacesImStudyingIn; List get spacesImIn => _spacesImIn; Future get lastUpdatedRoomRules async => await _lastUpdatedRoomRules; // general_info Future> get teacherRoomIds async => await _teacherRoomIds; Future> get myTeachers async => await _myTeachers; Future getReportsDM(User teacher, Room space) async => await _getReportsDM(teacher, space); Future get hasBotDM async => await _hasBotDM; Future> getEditHistory( String roomId, String eventId, ) async => await _getEditHistory(roomId, eventId); }