part of '../persistence.dart'; /// Repository contract for task records. abstract interface class TaskRepository { /// Return the task with [taskId] in [ownerId], or null when it is absent. Future> findById({ required core.OwnerId ownerId, required String taskId, }); /// Return owner-scoped tasks in deterministic adapter order. Future>> findByOwner({ required core.OwnerId ownerId, core.PageRequest page = const core.PageRequest(), }); /// Return owner-scoped tasks assigned to [projectId]. Future>> findByProjectId({ required core.OwnerId ownerId, required String projectId, core.PageRequest page = const core.PageRequest(), }); /// Return owner-scoped direct child tasks for [parentTaskId]. Future>> findByParentTaskId({ required core.OwnerId ownerId, required String parentTaskId, core.PageRequest page = const core.PageRequest(), }); /// Return owner-scoped tasks with [status]. Future>> findByStatus({ required core.OwnerId ownerId, required core.TaskStatus status, core.PageRequest page = const core.PageRequest(), }); /// Insert [task] for [ownerId] and return the assigned revision. Future> insert({ required core.OwnerId ownerId, required core.Task task, }); /// Save [task] if [expectedRevision] still matches the stored record. Future> save({ required core.OwnerId ownerId, required core.Task task, required core.Revision expectedRevision, }); /// Remove [taskId] if [expectedRevision] still matches the stored record. Future> delete({ required core.OwnerId ownerId, required String taskId, required core.Revision expectedRevision, }); }