first commit

This commit is contained in:
ytc1012
2025-11-22 18:17:35 +08:00
commit d427916c6a
169 changed files with 15241 additions and 0 deletions

View 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;
}
}