import { axiosClient } from "@/lib/axios";
import { ApiResponse } from "@/types/api.types";

export interface ManagerTaskStats {
  total: number;
  pendingMyReview: number;
  sentToClient: number;
  completed: number;
  rejectedByMe: number;
  byStatus: Record<string, number>;
}

export interface ManagerDecisionTrendPoint {
  date: string;
  approved: number;
  rejected: number;
}

export interface TeamPerformanceRow {
  name: string;
  completed: number;
}

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

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

  getTeamPerformance: async (): Promise<ApiResponse<TeamPerformanceRow[]>> => {
    const res = await axiosClient.get(
      `/manager-dashboard/manager/team-performance`,
    );
    return res.data;
  },
};
