"use server"; import { cache } from "react"; import { serverFetchJson } from "@/app/utils/fetchUtil"; import { BASE_API_URL } from "@/config/api"; export interface comboProp { id: any; label: string; } export interface teamCombo { records: comboProp[]; } export interface weeklyTeamTotalManhoursSpentResult { weeklyActualTeamTotalManhoursSpent: any[]; weeklyPlannedTeamTotalManhoursSpent: any[]; } export interface monthlyTeamTotalManhoursSpentResult { monthlyActualTeamTotalManhoursSpent: any[]; monthlyPlannedTeamTotalManhoursSpent: any[]; } export interface totalManhourByGradeResult { staffGradeTotalManhours: any[]; staffGradeTotalPlannedManhours: any[]; } export interface weeklyUnsubmitResult { id: number; name: string; teamId: number; UnsubmittedCount: number; } export interface records { id: number; name: string; label: string; // team: Team[]; } export interface IndividualStaffManhoursDaily { individualStaffManhoursSpentByDay: any[]; individualStaffTotalManhoursSpentByDay: any[]; individualStaffTotalLeaveHoursByDay: any[]; } export interface IndividualStaffManhoursWeekly { individualStaffManhoursSpentWeekly: any[]; individualStaffTotalManhoursSpentWeekly: any[]; individualStaffTotalLeaveHoursWeekly: any[]; } export interface IndividualStaffManhoursMonthly { individualStaffManhoursSpentByMonth: any[]; individualStaffTotalManhoursSpentByMonth: any[]; individualStaffTotalLeaveHoursByMonth: any[]; } export const fetchTeamCombo = cache(async () => { return serverFetchJson(`${BASE_API_URL}/team/combo`); }); export const fetchweeklyTeamTotalManhours = cache(async (teamId: number, startdate:string) => { return serverFetchJson(`${BASE_API_URL}/dashboard/searchWeeklyActualTeamTotalManhoursSpent?teamId=${teamId}&startdate=${startdate}`); }); export const fetchmonthlyTeamTotalManhours = cache(async (teamId: number, startdate:string, enddate:string) => { return serverFetchJson(`${BASE_API_URL}/dashboard/searchMonthlyActualTeamTotalManhoursSpent?teamId=${teamId}&startdate=${startdate}&enddate=${enddate}`); }); export const fetchTotalManhoursByGrade = cache(async (startdate:string, enddate:string, teamId:number) => { return serverFetchJson(`${BASE_API_URL}/dashboard/searchTotalManhoursSpentByStaffGrade?startdate=${startdate}&enddate=${enddate}&teamId=${teamId}`); }); export const fetchWeeklyUnsubmit = cache(async (teamId:number,startdate:string, publicHolidayList:string) => { return serverFetchJson(`${BASE_API_URL}/dashboard/searchWeeklyUnsubmittedTimeSheet?teamId=${teamId}&startdate=${startdate}&publicHolidayList=${publicHolidayList}`); }); export const fetchMonthlyUnsubmit = cache(async (teamId:number,startdate:string, enddate:string, publicHolidayList:string) => { return serverFetchJson(`${BASE_API_URL}/dashboard/searchMonthlyUnsubmittedTimeSheet?teamId=${teamId}&startdate=${startdate}&enddate=${enddate}&publicHolidayList=${publicHolidayList}`); }); export const fetchStaffCombo = cache(async () => { return serverFetchJson(`${BASE_API_URL}/dashboard/searchStaffCombo`, { next: { tags: ["staffs"] }, }); }); export const fetchDailyIndividualStaffManhours = cache(async (staffId:number,startdate:string) => { return serverFetchJson(`${BASE_API_URL}/dashboard/searchTotalManhoursSpentByStaffDaily?staffId=${staffId}&startdate=${startdate}`); }); export const fetchWeeklyIndividualStaffManhours = cache(async (staffId:number,startdate:string, enddate:string) => { return serverFetchJson(`${BASE_API_URL}/dashboard/searchTotalManhoursSpentByStaffWeekly?staffId=${staffId}&startdate=${startdate}&enddate=${enddate}`); }); export const fetchMonthlyIndividualStaffManhours = cache(async (staffId:number,startdate:string) => { return serverFetchJson(`${BASE_API_URL}/dashboard/searchTotalManhoursSpentByStaffByMonth?staffId=${staffId}&startdate=${startdate}`); });