Files
ai_english/client/lib/features/home/models/learning_progress_model.dart
2025-11-17 14:09:17 +08:00

49 lines
1.3 KiB
Dart

/// 学习进度模型
class LearningProgress {
final String id;
final String title;
final String category;
final int totalWords;
final int learnedWords;
final double progress;
final DateTime? lastStudyDate;
LearningProgress({
required this.id,
required this.title,
required this.category,
required this.totalWords,
required this.learnedWords,
required this.progress,
this.lastStudyDate,
});
factory LearningProgress.fromJson(Map<String, dynamic> json) {
return LearningProgress(
id: json['id'] as String? ?? '',
title: json['title'] as String? ?? '',
category: json['category'] as String? ?? '',
totalWords: json['total_words'] as int? ?? 0,
learnedWords: json['learned_words'] as int? ?? 0,
progress: (json['progress'] as num?)?.toDouble() ?? 0.0,
lastStudyDate: json['last_study_date'] != null
? DateTime.tryParse(json['last_study_date'] as String)
: null,
);
}
Map<String, dynamic> toJson() {
return {
'id': id,
'title': title,
'category': category,
'total_words': totalWords,
'learned_words': learnedWords,
'progress': progress,
'last_study_date': lastStudyDate?.toIso8601String(),
};
}
String get progressPercentage => '${(progress * 100).toInt()}%';
}