fluffychat/lib/pangea/analytics_misc/level_summary_extension.dart
2025-12-23 14:35:41 -05:00

27 lines
840 B
Dart

import 'package:matrix/matrix.dart';
import 'package:fluffychat/pangea/constructs/construct_repo.dart';
import 'package:fluffychat/pangea/events/constants/pangea_event_types.dart';
extension LevelSummaryExtension on Room {
ConstructSummary? get levelUpSummary {
final summaryEvent = getState(PangeaEventTypes.constructSummary);
if (summaryEvent != null) {
return ConstructSummary.fromJson(summaryEvent.content);
}
return null;
}
DateTime? get lastLevelUpTimestamp {
final lastLevelUp = getState(PangeaEventTypes.constructSummary);
return lastLevelUp is Event ? lastLevelUp.originServerTs : null;
}
Future<void> setLevelUpSummary(ConstructSummary summary) =>
client.setRoomStateWithKey(
id,
PangeaEventTypes.constructSummary,
'',
summary.toJson(),
);
}