import { axiosClient } from "@/lib/axios";
import { ApiResponse } from "@/types/api.types";
import { Task } from "@/modules/client/task/type/task.type";

export interface TaskStats {
  total: number;
  completed: number;
  pendingReview: number;
  overdue: number;
  dueSoon: number;
  byStatus: Record<string, number>;
}

export interface TaskTrendPoint {
  date: string;
  created: number;
  completed: number;
}

export const clientDashboardService = {
  getTaskStats: async (): Promise<ApiResponse<TaskStats>> => {
    const res = await axiosClient.get(`/client-dashboard/tasks/stats`);
    return res.data;
  },

  getTaskTrend: async (
    days: number = 30,
  ): Promise<ApiResponse<TaskTrendPoint[]>> => {
    const res = await axiosClient.get(
      `/client-dashboard/tasks/trend?days=${days}`,
    );
    return res.data;
  },

  getAllRejections: async (): Promise<ApiResponse<Task[]>> => {
    const res = await axiosClient.get(`/tasks/rejections`);
    return res.data;
  },
};
