Files
task_hub/lib/models/task.dart
2026-04-28 19:59:51 +08:00

55 lines
1018 B
Dart

import 'package:hive/hive.dart';
// flutter packages pub run build_runner build
// part 'todo.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,
}) : id = id ?? DateTime.timestamp().microsecond,
this.priorityIndex = priority.index,
createTime = DateTime.now(),
updateTime = DateTime.now();
}
enum Priority { low, medium, high }