// تایپ‌های مربوط به فروش
interface SalesStats {
  _id: string | null;
  totalSales: number;
  totalNetSales: number;
  itemsSold: number;
  totalOrders: number;
}

// تایپ‌های مربوط به فروش حمل و نقل
interface ShipmentSalesStats {
  _id: string | null;
  totalShipmentCost: number;
  itemsSold: number;
  totalOrders: number;
}

// تایپ فروشگاه
interface Shop {
  _id: string;
  shopName: string;
}

// تایپ جزئیات محصول
interface ProductDetails {
  _id: number;
  title_fa: string;
  title_en: string;
  model: string;
  description: string;
  shop: Shop;
}

// تایپ محصولات برتر
interface TopProduct {
  totalSold: number;
  productDetails: ProductDetails;
  productId: number;
}

// تایپ فروش ۵ روز گذشته (ساختار دقیق مشخص نیست، فعلاً unknown استفاده می‌کنیم)
type FiveDaysAgoSales = unknown[];

// تایپ اصلی داشبورد
export interface DashboardData {
  dailySales: SalesStats;
  weeklySales: SalesStats;
  monthlySales: SalesStats | null;
  yearlySales: SalesStats;
  dailyShipmentSales: ShipmentSalesStats;
  weeklyShipmentSales: ShipmentSalesStats;
  monthlyShipmentSales: ShipmentSalesStats;
  yearlyShipmentSales: ShipmentSalesStats;
  withdrawalRequests: number;
  FiveDaysAgoSales: FiveDaysAgoSales;
  topProducts: TopProduct[];
  proccessingOrders: number;
  pendingComments: number;
  pendingQuestions: number;
  sellersCount: number;
  usersCount: number;
  wholesaleRequestCount: number;
  pendingBrandsCount: number;
  pendingWarranties: number;
  productCount: number;
  pendingProductCount: number;
}

// تایپ داده‌های نمودار سفارش
export interface OrderChartData {
  chartType: string;
  title: string;
  unit: string;
  granularity: string;
  xAxis: string[];
  yAxis: number[];
  totalSales: number;
  _debug: {
    aggregatedPeriods: number;
  };
}

// تایپ پاسخ API نمودار سفارش
export interface OrderChartResponse {
  status: number;
  success: boolean;
  results: OrderChartData;
}

// تایپ پاسخ API
export interface DashboardResponse {
  status: number;
  success: boolean;
  results: DashboardData;
}
