Files
task_hub/lib/models/task.dart
2026-04-29 19:21:57 +08:00

56 lines
1.1 KiB
Dart

import 'package:hive/hive.dart';
// flutter packages pub run build_runner build
part 'task.g.dart';
@HiveType(typeId: 0)
class Task extends HiveObject {
@HiveField(0)
int id;
@HiveField(1)
String title;
@HiveField(2)
String? desc;
@HiveField(3)
DateTime? dueDate;
@HiveField(4)
DateTime? scheduleTime;
@HiveField(5)
bool isCompleted;
@HiveField(6)
int priorityIndex;
@HiveField(7)
DateTime createTime;
@HiveField(8)
DateTime updateTime;
Priority get priority => Priority.values[priorityIndex];
set priority(Priority value) => priorityIndex = value.index;
Task({
int? id,
required this.title,
this.desc,
this.dueDate,
this.scheduleTime,
this.isCompleted = false,
Priority priority = Priority.medium,
DateTime? createTime,
DateTime? updateTime,
}) : id = id ?? DateTime.now().millisecondsSinceEpoch ~/ 1000,
this.priorityIndex = priority.index,
createTime = createTime ?? DateTime.now(),
updateTime = updateTime ?? DateTime.now();
}
enum Priority { low, medium, high }