import { WildCard } from "@/app/utils/commonUtil"; import { records } from "../staff/actions"; export interface FinancialStatusReportFilter { project: string[]; } // - Project P&L Report export interface ProjectPandLReportFilter { project: AutocompleteOptions[]; startMonth: string; startMonthTo: string; } export interface ProjectPandLReportRequest { projectId: number; startMonth: string; endMonth: string; } // - Project Cash Flow Report interface AutocompleteOptions { value: number | string; label: string; group?: string; } export interface ProjectCashFlowReportFilter { project: AutocompleteOptions[]; dateType: string[]; } export interface ProjectCashFlowReportRequest { projectId: number; dateType: string; } // - Project Potential Delay Report export interface ProjectPotentialDelayReportFilter { team: string[]; client: AutocompleteOptions[]; daysUntilCurrentStageEnd: number; resourceUtilizationPercentage: number; } export interface ProjectPotentialDelayReportRequest { teamId: number | "All"; clientId: number | "All"; daysUntilCurrentStageEnd: number; resourceUtilizationPercentage: number; type: string; } // - Monthly Work Hours Report export interface MonthlyWorkHoursReportFilter { staff: string[]; date: string; } export interface MonthlyWorkHoursReportRequest { id: number; yearMonth: string; holidays: String[]; } // - Project Resource Overconsumption Report export interface ProjectResourceOverconsumptionReportFilter { team: string[]; customer: string[]; status: string[]; lowerLimit: number; } export interface ProjectResourceOverconsumptionReportRequest extends WildCard { teamId?: number custId?: number subsidiaryId?: number status: "All" | "Within Budget" | "Potential Overconsumption" | "Overconsumption" lowerLimit: number } export interface LateStartReportFilter { remainedDays: number; overdueDays: number; team: string[]; } export interface LateStartReportRequest { teamId: number; clientId: number; remainedDate: string; remainedDateTo: string; type: string; } export interface ProjectCompletionReportFilter { startDate: String; startDateTo: String; outstanding: String; } export interface ProjectCompletionReportRequest { startDate: String; endDate: String; outstanding: Boolean; teamId?: number } export interface CostAndExpenseReportFilter { team: string[]; customer: string[]; budgetPercentage: number; } export interface CostAndExpenseReportRequest { teamId: number | null; clientId: number | null; budgetPercentage: number | null; type: string; } // - Cross Team Charge Report export interface CrossTeamChargeReportFilter { month: string; team: string[]; } export interface CrossTeamChargeReportRequest { month: string; teamId: number | "All"; } export interface ProjectManhourSummaryReportFilter { teamId: number; startDate: string; endDate: string; } export interface ProjectManhourSummaryReportRequest { teamId: number; startDate: string; endDate: string; } export interface ProjectMonthlyReportRequest { projectId: number; yearMonth: string; holidays: String[]; } export interface ProjectMonthlyReportFilter { projects: string[]; date: string; } export interface LastModifiedReportFilter { date: string; dayRange: number; } export interface LastModifiedReportRequest { dateString: string; dayRange: number; } export interface ExportCurrentStaffInfoRequest { staffIds: number[]; }