56 lines
1.1 KiB
Dart
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 }
|