first commit
This commit is contained in:
44
lib/models/focus_session.dart
Normal file
44
lib/models/focus_session.dart
Normal file
@@ -0,0 +1,44 @@
|
||||
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<String> distractionTypes; // List of distraction type strings
|
||||
|
||||
FocusSession({
|
||||
required this.startTime,
|
||||
required this.durationMinutes,
|
||||
required this.actualMinutes,
|
||||
this.distractionCount = 0,
|
||||
this.completed = false,
|
||||
List<String>? 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user