Files
flisp_app/lib/service/todo_service.dart
2025-11-16 11:26:38 +08:00

49 lines
981 B
Dart

import 'package:flisp_app/models/todo.dart';
import 'package:hive_flutter/hive_flutter.dart';
class TodoService {
static const String boxName = 'todos';
Box<Todo> get box => Hive.box<Todo>(boxName);
Future<bool> addTodo(Todo todo) async {
try {
await box.add(todo);
return true;
} catch (e) {
return false;
}
}
List<Todo> getAllTodos() {
return box.values.toList()
..sort((a, b) => b.updateTime.compareTo(a.updateTime));
}
List<Todo> getAllTodosByYear(int year) {
return box.values
.toList()
.where((todo) => todo.createTime.year == year)
.toList();
}
Future<bool> updateTodo(Todo todo) async {
try {
todo.updateTime = DateTime.now();
await todo.save();
return true;
} catch (e) {
return false;
}
}
Future<bool> deleteTodo(Todo todo) async {
try {
await todo.delete();
return true;
} catch (e) {
return false;
}
}
}