/**
 * ========================================
 * 유전체 분석 관련 타입 정의
 * ========================================
 *
 * @description
 * - 실제 사용되는 타입만 정의
 * - 백엔드 findByCowId API 응답 형식
 */

/**
 * 형질별 육종가 정보
 *
 * @backend GenomeTraitDto.genomeCows 배열 항목
 * @description 개체의 형질별 유전체 분석 결과
 *
 * @usage
 * - 개체 상세 페이지 형질 데이터 표시
 * - 형질 비교 차트 컴포넌트
 */
export interface GenomeCowTraitDto {
  traitName?: string             // 형질명 (예: "도체중", "등심단면적")
  breedVal?: number              // EBV: 표준화 육종가 (σ 단위)
  traitVal?: number              // EPD: 육종가 원본값
  percentile?: number            // 백분위 순위 (0-100, 낮을수록 상위)
  traitCategory?: string         // 형질 카테고리
  traitDesc?: string             // 형질 설명
  [key: string]: any
}

/**
 * 유전체 형질 정보
 *
 * @backend findByCowId API 응답
 * @description 개체의 유전체 분석 결과 (의뢰 정보 + 35개 형질 데이터)
 *
 * @usage
 * - genome.api.findByCowNo() 응답
 * - 개체 상세 페이지에서 형질 데이터 표시
 */
export interface GenomeTraitDto {
  // === 연결 정보 ===
  fkRequestNo?: number             // 분석 의뢰번호

  // === 관계 데이터 ===
  request?: {                      // 분석 의뢰 기본 정보
    pkRequestNo?: number
    requestDt?: string
    chipSireName?: string
    [key: string]: any
  }

  trait?: any                      // 형질 메타데이터 (legacy)

  genomeCows?: GenomeCowTraitDto[] // 형질별 육종가/백분위 배열 (35개)

  // === 계산 필드 ===
  anlysDt?: string                 // 분석일자

  // === 시스템 필드 ===
  delDt?: string                   // 삭제일시
  [key: string]: any               // 추가 동적 필드
}

/**
 * GenomeTrait 별칭
 *
 * @description 실제 사용 중 (genome.api.ts, cow/[cowNo]/page.tsx 등)
 */
export type GenomeTrait = GenomeTraitDto
