export type ReportTabType = "financial" | "fleet" | "maintenance";

export interface ReportFilterParams {
  tab: ReportTabType;
  period: "all" | "30days" | "month" | "year";
  startDate?: string;
  endDate?: string;
  categoryId?: string;
  status?: string;
  search?: string;
}

export interface ReportSummaryStats {
  totalRevenue: number;
  totalMaintenanceCost: number;
  netProfit: number;
  activeRentalsCount: number;
  totalEquipmentCount: number;
  rentedEquipmentCount: number;
  fleetUtilizationRate: number;
}

export interface FinancialReportItem {
  id: string;
  type: "RECEIVABLE" | "PAYABLE";
  description: string;
  entityName: string;
  amount: number;
  status: string;
  dueDate: string;
  paidAt?: string | null;
}

export interface FinancialReportResponse {
  items: FinancialReportItem[];
  summary: {
    totalReceivables: number;
    totalPayables: number;
    balance: number;
  };
}

export interface FleetReportItem {
  id: string;
  code: string;
  name: string;
  categoryName: string;
  brand: string;
  model: string;
  status: string;
  totalRentals: number;
  totalRevenue: number;
  totalMaintenanceCost: number;
  netBalance: number;
}

export interface FleetReportResponse {
  items: FleetReportItem[];
}

export interface MaintenanceReportItem {
  id: string;
  code: string;
  title: string;
  equipmentName: string;
  supplierName: string;
  cost: number;
  status: string;
  openedAt: string;
  closedAt?: string | null;
}

export interface MaintenanceReportResponse {
  items: MaintenanceReportItem[];
  summary: {
    totalOrders: number;
    totalCost: number;
  };
}
