using Hua.Todo.Application.Models;
namespace Hua.Todo.Application.Interfaces;
///
/// 任务管理服务接口。
///
public interface ITaskService : IDynamicApiService
{
///
/// 获取所有任务。
///
/// 包含所有任务的列表。
Task> GetAllTasksAsync();
///
/// 根据 ID 获取任务。
///
/// 任务 ID。
/// 匹配的任务 DTO,如果未找到则返回 null。
Task GetTaskByIdAsync(Guid id);
///
/// 获取未完成的任务。
///
/// 未完成任务的列表。
Task> GetActiveTasksAsync();
///
/// 获取已完成的任务。
///
/// 已完成任务的列表。
Task> GetCompletedTasksAsync();
///
/// 创建新任务。
///
/// 创建任务所需的数据传输对象。
/// 创建成功的任务 DTO。
Task CreateTaskAsync(CreateTaskDto dto);
///
/// 更新任务信息。
///
/// 包含更新信息的任务数据传输对象。
/// 更新后的任务 DTO。
Task UpdateTaskAsync(UpdateTaskDto dto);
///
/// 切换任务完成状态。
///
/// 任务 ID。
/// 更新状态后的任务 DTO。
Task ToggleCompleteAsync(Guid id);
///
/// 删除任务。
///
/// 要删除的任务 ID。
Task DeleteTaskAsync(Guid id);
///
/// 获取子任务列表。
///
/// 父任务 ID。
/// 该父任务下的所有子任务列表。
Task> GetSubTasksAsync(Guid parentTaskId);
}