ReviewCard constructor

const ReviewCard({
  1. required String id,
  2. required String userId,
  3. required String topicId,
  4. String? chunkId,
  5. required String cardType,
  6. required String front,
  7. required String back,
  8. required double easinessFactor,
  9. required int intervalDays,
  10. required int repetitions,
  11. required DateTime nextReviewAt,
  12. DateTime? lastReviewAt,
  13. int? lastQuality,
  14. double? stability,
  15. double? difficulty,
  16. @Default('new') String state,
  17. double? lastElapsedDays,
  18. int? scheduledDays,
  19. @Default('sm2') String algorithm,
  20. Map<String, dynamic>? cardData,
})

Implementation

const factory ReviewCard({
  required String id,
  required String userId,
  required String topicId,
  String? chunkId,
  required String
  cardType, // 'concept', 'application', 'comparison', 'code', 'cloze', 'ordering', 'discrimination'
  required String front,
  required String back,
  required double easinessFactor,
  required int intervalDays,
  required int repetitions,
  required DateTime nextReviewAt,
  DateTime? lastReviewAt,
  int? lastQuality,
  // FSRS-specific fields
  double? stability,
  double? difficulty,
  @Default('new') String state, // 'new', 'learning', 'review', 'relearning'
  double? lastElapsedDays,
  int? scheduledDays,
  @Default('sm2') String algorithm, // 'sm2' or 'fsrs'
  Map<String, dynamic>? cardData,
}) = _ReviewCard;