31 lines
1.1 KiB
Dart
31 lines
1.1 KiB
Dart
import 'package:mnemo_cards_common_backend/mnemo_cards_common_backend.dart';
|
|
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
|
|
|
|
extension UserDataModelExtension on UserDataModel {
|
|
UserDataDto toDto() {
|
|
return UserDataDto(
|
|
allWordsStatistics: AllWordsStatisticsDto(
|
|
words: words.map((model) => model.toDto()).toList(),
|
|
),
|
|
allTestsStatistics: AllTestsStatisticsDto(
|
|
tests: Map.fromEntries(
|
|
testsStatistics.map(
|
|
(model) => MapEntry(model.id!, model.toDto()),
|
|
),
|
|
),
|
|
lastSessionToken: this.lastTestSessionToken,
|
|
),
|
|
// NEW STATISTICS FIELDS
|
|
lastTimeOnline: lastTimeOnline,
|
|
totalStudyTimeMinutes: totalStudyTimeMinutes,
|
|
currentStreak: currentStreak,
|
|
longestStreak: longestStreak,
|
|
packProgress: {
|
|
for (final progress in packProgress) progress.packId: progress.toDto()
|
|
},
|
|
studyDates: List<DateTime>.from(studyDates),
|
|
categoryMinutes: Map<String, int>.from(categoryMinutes),
|
|
achievements: achievements.map((model) => model.toDto()).toList(),
|
|
);
|
|
}
|
|
}
|