import { records } from "../staff/actions";

export interface FinancialStatusReportFilter {
    project: string[];
}

//  - Project P&L Report
export interface ProjectPandLReportFilter {
    project: string[];
    startMonth: string;
    startMonthTo: string;
}

export interface ProjectPandLReportRequest {
    projectId: number;
    startMonth: string;
    endMonth: string;
}

//  - Project Cash Flow Report
export interface ProjectCashFlowReportFilter {
    project: string[];
    dateType: string[];
}

export interface ProjectCashFlowReportRequest {
    projectId: number;
    dateType: string;
}

//  - Project Potential Delay Report
export interface ProjectPotentialDelayReportFilter {
    team: string[];
    client: string[];
    numberOfDays: number;
    projectCompletion: number;
}

export interface ProjectPotentialDelayReportRequest {
    teamId: number | "All";
    clientId: number | "All";
    numberOfDays: number;
    projectCompletion: number;
}

//  - Monthly Work Hours Report
export interface MonthlyWorkHoursReportFilter {
    staff: string[];
    date: string;
}

export interface MonthlyWorkHoursReportRequest {
    id: number;
    yearMonth: string;
}
//  - Project Resource Overconsumption Report
export interface ProjectResourceOverconsumptionReportFilter {
    team: string[];
    customer: string[];
    status: string[];
    lowerLimit: number;
}

export interface ProjectResourceOverconsumptionReportRequest {
    teamId?: number
    custId?: 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;
}

export interface ProjectCompletionReportFilter {
    startDate: String;
    startDateTo: String;
    outstanding: String;
}

export interface ProjectCompletionReportRequest {
    startDate: String;
    endDate: String;
    outstanding: Boolean;
}
export interface CostAndExpenseReportFilter {
    team: string[];
    customer: string[];
    budgetPercentage: number;
}

export interface CostAndExpenseReportRequest {
    teamId: number | null;
    clientId: number | null;
    budgetPercentage: number;
}
