import 'package:hive/hive.dart'; part 'focus_session.g.dart'; @HiveType(typeId: 0) class FocusSession extends HiveObject { @HiveField(0) DateTime startTime; @HiveField(1) int durationMinutes; // Planned duration (e.g., 25) @HiveField(2) int actualMinutes; // Actual time focused (may be less if stopped early) @HiveField(3) int distractionCount; // Simplified: just count distractions @HiveField(4) bool completed; // Whether the session was completed or stopped early @HiveField(5) List distractionTypes; // List of distraction type strings FocusSession({ required this.startTime, required this.durationMinutes, required this.actualMinutes, this.distractionCount = 0, this.completed = false, List? distractionTypes, }) : distractionTypes = distractionTypes ?? []; /// Get the date (without time) for grouping sessions by day DateTime get date => DateTime(startTime.year, startTime.month, startTime.day); /// Check if this session was today bool get isToday { final now = DateTime.now(); return date.year == now.year && date.month == now.month && date.day == now.day; } }