diff --git a/lib/features/tasks/presentation/task_providers.dart b/lib/features/tasks/presentation/task_providers.dart index dab1bc1..117cdf3 100644 --- a/lib/features/tasks/presentation/task_providers.dart +++ b/lib/features/tasks/presentation/task_providers.dart @@ -89,4 +89,15 @@ class TaskActions extends _$TaskActions { final db = ref.read(appDatabaseProvider); await db.tasksDao.completeTask(taskId); } + + /// Smart delete: hard-deletes tasks with no completions, soft-deletes tasks with completions. + Future smartDeleteTask(int taskId) async { + final db = ref.read(appDatabaseProvider); + final completionCount = await db.tasksDao.getCompletionCount(taskId); + if (completionCount == 0) { + await db.tasksDao.deleteTask(taskId); + } else { + await db.tasksDao.softDeleteTask(taskId); + } + } } diff --git a/lib/features/tasks/presentation/task_providers.g.dart b/lib/features/tasks/presentation/task_providers.g.dart index 28d3c79..d9936de 100644 --- a/lib/features/tasks/presentation/task_providers.g.dart +++ b/lib/features/tasks/presentation/task_providers.g.dart @@ -36,7 +36,7 @@ final class TaskActionsProvider TaskActions create() => TaskActions(); } -String _$taskActionsHash() => r'62f1739263e3cfb379b83de10d712b17fd087f92'; +String _$taskActionsHash() => r'4ef782496ca32338f12281bab258a63a59a293e5'; /// Notifier for task mutations: create, update, delete, complete.