mnemo_cards/mnemo_cards_backend/lib/user/user_data_model.dart

32 lines
1.1 KiB
Dart
Raw Normal View History

2025-11-16 11:25:27 +00:00
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: {
2025-11-16 12:15:21 +00:00
for (final progress in packProgress) progress.packId: progress.toDto()
2025-11-16 11:25:27 +00:00
},
studyDates: List<DateTime>.from(studyDates),
categoryMinutes: Map<String, int>.from(categoryMinutes),
achievements: achievements.map((model) => model.toDto()).toList(),
);
}
}