import { requestClient } from '#/api/request';

export namespace HrmWorkHourStatisticsApi {
  /** 员工工时（考勤口径） */
  export interface EmployeeWorkHour {
    userId?: number;
    userName?: string;
    deptId?: number;
    deptName?: string;
    workDays?: number; // 出勤天数
    workHours?: number; // 正常工时（人时）
    overtimeHours?: number; // 加班工时（人时）
  }

  /** 班组工时（报工口径） */
  export interface TeamWorkHour {
    teamId?: number;
    teamName?: string;
    taskCount?: number; // 任务数
    totalDuration?: number; // 总生产时长（人日）
    workHours?: number; // 总工时（人时）
  }

  export interface EmployeeWorkHourReq {
    userId?: number;
    deptId?: number;
    startDate?: string;
    endDate?: string;
  }

  export interface TeamWorkHourReq {
    startTime?: string;
    endTime?: string;
  }
}

/** 员工工时统计（考勤口径） */
export function getEmployeeWorkHourSummary(
  params: HrmWorkHourStatisticsApi.EmployeeWorkHourReq = {},
) {
  return requestClient.get<HrmWorkHourStatisticsApi.EmployeeWorkHour[]>(
    '/hrm/work-hour-statistics/employee-summary',
    { params },
  );
}

/** 班组工时统计（报工口径，跨模块聚合 MES） */
export function getTeamWorkHourSummary(
  params: HrmWorkHourStatisticsApi.TeamWorkHourReq = {},
) {
  return requestClient.get<HrmWorkHourStatisticsApi.TeamWorkHour[]>(
    '/hrm/work-hour-statistics/team-summary',
    { params },
  );
}
