using TodoList.Application.DynamicApi;
using TodoList.Application.Models;

namespace TodoList.Application.Interfaces;

public interface ITaskService : IDynamicApiService
{
    Task<List<TaskDto>> GetAllTasksAsync();
    Task<TaskDto?> GetTaskByIdAsync(int id);
    Task<List<TaskDto>> GetActiveTasksAsync();
    Task<List<TaskDto>> GetCompletedTasksAsync();
    Task<TaskDto> CreateTaskAsync(CreateTaskDto dto);
    Task<TaskDto> UpdateTaskAsync(UpdateTaskDto dto);
    Task<TaskDto> ToggleCompleteAsync(int id);
    Task DeleteTaskAsync(int id);
    Task<List<TaskDto>> GetSubTasksAsync(int parentTaskId);
}
