import 'package:hive/hive.dart'; import 'package:uuid/uuid.dart'; part 'teaching_plan.g.dart'; @HiveType(typeId: 14) class TeachingPlan { @HiveField(0) final String id; @HiveField(1) final String topic; @HiveField(2) final String scriptureReference; @HiveField(3) final String notes; @HiveField(4) final DateTime date; @HiveField(5) final bool isCompleted; TeachingPlan({ required this.id, required this.topic, required this.scriptureReference, required this.notes, required this.date, this.isCompleted = false, }); TeachingPlan copyWith({ String? topic, String? scriptureReference, String? notes, DateTime? date, bool? isCompleted, }) { return TeachingPlan( id: id, topic: topic ?? this.topic, scriptureReference: scriptureReference ?? this.scriptureReference, notes: notes ?? this.notes, date: date ?? this.date, isCompleted: isCompleted ?? this.isCompleted, ); } factory TeachingPlan.create({ required String topic, required String scriptureReference, required String notes, required DateTime date, }) { return TeachingPlan( id: const Uuid().v4(), topic: topic, scriptureReference: scriptureReference, notes: notes, date: date, isCompleted: false, ); } }