Files
ai_english/client/lib/features/vocabulary/models/study_session_model.g.dart
2025-11-17 14:09:17 +08:00

146 lines
6.2 KiB
Dart

// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'study_session_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
StudySession _$StudySessionFromJson(Map<String, dynamic> json) => StudySession(
id: json['id'] as String,
userId: json['userId'] as String,
vocabularyBookId: json['vocabularyBookId'] as String?,
mode: $enumDecode(_$StudyModeEnumMap, json['mode']),
targetWordCount: (json['targetWordCount'] as num).toInt(),
actualWordCount: (json['actualWordCount'] as num?)?.toInt() ?? 0,
correctAnswers: (json['correctAnswers'] as num?)?.toInt() ?? 0,
wrongAnswers: (json['wrongAnswers'] as num?)?.toInt() ?? 0,
skippedAnswers: (json['skippedAnswers'] as num?)?.toInt() ?? 0,
durationSeconds: (json['durationSeconds'] as num?)?.toInt() ?? 0,
accuracy: (json['accuracy'] as num?)?.toDouble() ?? 0.0,
experienceGained: (json['experienceGained'] as num?)?.toInt() ?? 0,
pointsGained: (json['pointsGained'] as num?)?.toInt() ?? 0,
isCompleted: json['isCompleted'] as bool? ?? false,
startedAt: DateTime.parse(json['startedAt'] as String),
endedAt: json['endedAt'] == null
? null
: DateTime.parse(json['endedAt'] as String),
createdAt: DateTime.parse(json['createdAt'] as String),
);
Map<String, dynamic> _$StudySessionToJson(StudySession instance) =>
<String, dynamic>{
'id': instance.id,
'userId': instance.userId,
'vocabularyBookId': instance.vocabularyBookId,
'mode': _$StudyModeEnumMap[instance.mode]!,
'targetWordCount': instance.targetWordCount,
'actualWordCount': instance.actualWordCount,
'correctAnswers': instance.correctAnswers,
'wrongAnswers': instance.wrongAnswers,
'skippedAnswers': instance.skippedAnswers,
'durationSeconds': instance.durationSeconds,
'accuracy': instance.accuracy,
'experienceGained': instance.experienceGained,
'pointsGained': instance.pointsGained,
'isCompleted': instance.isCompleted,
'startedAt': instance.startedAt.toIso8601String(),
'endedAt': instance.endedAt?.toIso8601String(),
'createdAt': instance.createdAt.toIso8601String(),
};
const _$StudyModeEnumMap = {
StudyMode.newWords: 'new_words',
StudyMode.review: 'review',
StudyMode.mixed: 'mixed',
StudyMode.test: 'test',
StudyMode.quickReview: 'quick_review',
};
WordExerciseRecord _$WordExerciseRecordFromJson(Map<String, dynamic> json) =>
WordExerciseRecord(
id: json['id'] as String,
sessionId: json['sessionId'] as String,
wordId: json['wordId'] as String,
exerciseType: $enumDecode(_$ExerciseTypeEnumMap, json['exerciseType']),
userAnswer: json['userAnswer'] as String,
correctAnswer: json['correctAnswer'] as String,
result: $enumDecode(_$AnswerResultEnumMap, json['result']),
responseTimeSeconds: (json['responseTimeSeconds'] as num).toInt(),
hintCount: (json['hintCount'] as num?)?.toInt() ?? 0,
word: json['word'] == null
? null
: Word.fromJson(json['word'] as Map<String, dynamic>),
answeredAt: DateTime.parse(json['answeredAt'] as String),
);
Map<String, dynamic> _$WordExerciseRecordToJson(WordExerciseRecord instance) =>
<String, dynamic>{
'id': instance.id,
'sessionId': instance.sessionId,
'wordId': instance.wordId,
'exerciseType': _$ExerciseTypeEnumMap[instance.exerciseType]!,
'userAnswer': instance.userAnswer,
'correctAnswer': instance.correctAnswer,
'result': _$AnswerResultEnumMap[instance.result]!,
'responseTimeSeconds': instance.responseTimeSeconds,
'hintCount': instance.hintCount,
'word': instance.word,
'answeredAt': instance.answeredAt.toIso8601String(),
};
const _$ExerciseTypeEnumMap = {
ExerciseType.wordMeaning: 'word_meaning',
ExerciseType.meaningWord: 'meaning_word',
ExerciseType.spelling: 'spelling',
ExerciseType.listening: 'listening',
ExerciseType.sentenceCompletion: 'sentence_completion',
ExerciseType.synonymAntonym: 'synonym_antonym',
ExerciseType.imageWord: 'image_word',
};
const _$AnswerResultEnumMap = {
AnswerResult.correct: 'correct',
AnswerResult.wrong: 'wrong',
AnswerResult.skipped: 'skipped',
};
StudyStatistics _$StudyStatisticsFromJson(Map<String, dynamic> json) =>
StudyStatistics(
id: json['id'] as String,
userId: json['user_id'] as String,
date: DateTime.parse(json['date'] as String),
sessionCount: (json['session_count'] as num?)?.toInt() ?? 0,
wordsStudied: (json['words_studied'] as num?)?.toInt() ?? 0,
newWordsLearned: (json['new_words_learned'] as num?)?.toInt() ?? 0,
wordsReviewed: (json['words_reviewed'] as num?)?.toInt() ?? 0,
wordsMastered: (json['words_mastered'] as num?)?.toInt() ?? 0,
totalStudyTimeSeconds:
(json['total_study_time_seconds'] as num?)?.toInt() ?? 0,
correctAnswers: (json['correct_answers'] as num?)?.toInt() ?? 0,
wrongAnswers: (json['wrong_answers'] as num?)?.toInt() ?? 0,
averageAccuracy: (json['average_accuracy'] as num?)?.toDouble() ?? 0.0,
experienceGained: (json['experience_gained'] as num?)?.toInt() ?? 0,
pointsGained: (json['points_gained'] as num?)?.toInt() ?? 0,
streakDays: (json['streak_days'] as num?)?.toInt() ?? 0,
);
Map<String, dynamic> _$StudyStatisticsToJson(StudyStatistics instance) =>
<String, dynamic>{
'id': instance.id,
'user_id': instance.userId,
'date': instance.date.toIso8601String(),
'session_count': instance.sessionCount,
'words_studied': instance.wordsStudied,
'new_words_learned': instance.newWordsLearned,
'words_reviewed': instance.wordsReviewed,
'words_mastered': instance.wordsMastered,
'total_study_time_seconds': instance.totalStudyTimeSeconds,
'correct_answers': instance.correctAnswers,
'wrong_answers': instance.wrongAnswers,
'average_accuracy': instance.averageAccuracy,
'experience_gained': instance.experienceGained,
'points_gained': instance.pointsGained,
'streak_days': instance.streakDays,
};