/**
 * 대시보드 요약 정보 DTO
 */
export interface DashboardSummaryDto {
  // 요약
  summary: {
    totalCows: number;        // 검사 받은 전체 개체 수
    genomeCowCount: number;   // 유전체 분석 개체 수
    geneCowCount: number;     // 유전자검사 개체 수
    mptCowCount: number;      // 번식능력검사 개체 수
    totalRequests: number;    // 유전체 의뢰 건수
    analyzedCount: number;    // 분석 완료
    pendingCount: number;     // 대기
    mismatchCount: number;    // 불일치
    maleCount: number;        // 수컷 수
    femaleCount: number;      // 암컷 수
  };
  // 친자감별 결과 현황
  paternityStats: {
    analysisComplete: number;  // 분석 완료
    sireMismatch: number;      // 부 불일치
    damMismatch: number;       // 모 불일치
    damNoRecord: number;       // 모 이력제부재
    notAnalyzed: number;       // 미분석
  };
  // 검사 종류별 현황
  testTypeStats: {
    snp: { total: number; completed: number };
    ms: { total: number; completed: number };
  };
}

/**
 * 연도별 통계 DTO
 */
export interface YearlyStatsDto {
  // 연도별 분석 현황
  yearlyStats: {
    year: number;
    totalRequests: number;
    analyzedCount: number;
    pendingCount: number;
    sireMatchCount: number;
    analyzeRate: number;
    sireMatchRate: number;
  }[];
  // 월별 접수 현황
  monthlyStats: { month: number; count: number }[];
  // 연도별 평균 EBV (농가 vs 보은군)
  yearlyAvgEbv: {
    year: number;
    farmAvgEbv: number;
    regionAvgEbv: number;
    traitCount: number;
  }[];
}

/**
 * 형질 평균 DTO
 */
export interface TraitAveragesDto {
  traitAverages: {
    traitName: string;
    category: string;
    avgEbv: number;
    avgEpd: number;
    avgPercentile: number;
    count: number;
    rank: number | null;
    totalFarms: number;
    percentile: number | null;
    regionAvgEpd?: number;
  }[];
  // 연도별 형질 평균 (차트용)
  yearlyTraitAverages: {
    year: number;
    traits: { traitName: string; avgEbv: number | null }[];
  }[];
}

/**
 * 접수 내역 DTO
 */
export interface RequestHistoryDto {
  requestHistory: {
    pkRequestNo: number;
    cowId: string;
    cowRemarks: string | null;
    requestDt: string | null;
    chipSireName: string | null;
    chipReportDt: string | null;
    status: string;
  }[];
}

/**
 * 칩/모근 통계 DTO
 */
export interface ChipStatsDto {
  chipTypeStats: { chipType: string; count: number }[];
  sampleAmountStats: { sampleAmount: string; count: number }[];
}
