export interface RegionData {
  region: string;
  count: number;
  conversion: string;
  success: string;
  duration: string;
}

export interface DurationStats {
  region: string;
  p0_5: string;
  p5_10: string;
  p10_20: string;
  p20plus: string;
}

export interface FunnelItem {
  label: string;
  value: number;
}

export interface SunburstNode {
  name: string;
  value?: number;
  itemStyle?: { color: string };
  children?: SunburstNode[];
}

export interface RiskIndicator {
  label: string;
  value: number;
  marketValue: number;
  description?: string;
}

export interface BarChartData {
  label: string;
  value: number;
}

export interface BarChartCompareItem {
  label: string;
  customerValue: number;
  marketValue: number;
}

export interface MapItem {
  name: string;
  value: number;
}

export interface ReportData {
  companyName: string;
  stats: {
    successRate: string;
    collectedCount: number;
    growthRate: string;
    fiveMinRate: string;
    avgDuration: number;
  };
  mapData: MapItem[];
  regionStatistics: RegionData[];
  durationStatistics: DurationStats[];
  funnelData: FunnelItem[];
  sunburstData: SunburstNode[];
  poorCustomerData: SunburstNode[];
  goodCustomerData: SunburstNode[];
  riskIndicators: {
    invoiceRisk: RiskIndicator;
    highTech: RiskIndicator;
    importExport: RiskIndicator;
    prepaidTax: RiskIndicator;
  };
  exportFreeTaxRebate: BarChartCompareItem[];
  exportTaxRebate: BarChartCompareItem[];
  loginPersonAssociation: BarChartCompareItem[];
  legalPersonAssociation: BarChartCompareItem[];
  riskScanning: BarChartCompareItem[];
  portraitDescriptions?: {
    all?: string;
    poor?: string;
    good?: string;
  };
  chartDescriptions?: {
    exportFreeTaxRebate?: string;
    exportTaxRebate?: string;
    loginPersonAssociation?: string;
    legalPersonAssociation?: string;
    riskScanning?: string;
  };
  summaryData: {
    totalUsers: string;
    userGrowth: string;
    avgDuration: string;
    successRate: string;
    topRegions: BarChartData[];
    industryDistribution: BarChartData[];
    riskDistribution: BarChartData[];
    recommendations: string[];
  };
}
