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 }