import { Todo, TodoCreateRequest, TodoUpdateRequest, ResponseData } from '../types'; import apiClient from '@/lib/api/axios-instance'; import { createHeaders } from '@/lib/api'; import { get, getList, post, put, del } from '../lib/api/api-utils'; class TodoService { private baseUrl = `/api/Todos`; async getAllTodos(): Promise> { return getList(this.baseUrl); } async getTodoById(id: number): Promise> { return get(`${this.baseUrl}/${id}`); } async createTodo(todo: TodoCreateRequest): Promise> { return post(this.baseUrl, todo); } async updateTodo(todo: TodoUpdateRequest): Promise> { return put(`${this.baseUrl}/${todo.id}`, todo); } async deleteTodo(id: number): Promise> { return del(`${this.baseUrl}/${id}`); } async getTodosByProject(projectId: number): Promise> { return getList(`${this.baseUrl}?projectId=${projectId}`); } async getTodosByAssignee(assigneeId: number): Promise> { return getList(`${this.baseUrl}/assignee/${assigneeId}`); } } export const todoService = new TodoService();