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_room_types.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:fluffychat/pangea/models/class_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'; import '../../utils/p_store.dart'; part "analytics_extension.dart"; part "classes_and_exchanges_extension.dart"; part "general_info_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 updateMyLearningAnalyticsForAllClassesImIn([ PLocalStore? storageService, ]) async => await _updateMyLearningAnalyticsForAllClassesImIn(storageService); 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(); // classes_and_exchanges List get classes => _classes; List get classesImTeaching => _classesImTeaching; Future> get classesAndExchangesImTeaching async => await _classesAndExchangesImTeaching; List get classesImIn => _classesImIn; Future> get classesAndExchangesImStudyingIn async => await _classesAndExchangesImStudyingIn; List get classesAndExchangesImIn => _classesAndExchangesImIn; Future get lastUpdatedRoomRules async => await _lastUpdatedRoomRules; ClassSettingsModel? get lastUpdatedClassSettings => _lastUpdatedClassSettings; // 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); }