/**
 * 근친도 관련 설정 상수
 *
 * @description
 * Wright's Coefficient of Inbreeding 알고리즘 기반 근친도 계산 및 위험도 판정 기준
 *
 * @source PRD 기능요구사항20.md SFR-COW-016-3
 * @reference Wright, S. (1922). Coefficients of Inbreeding and Relationship
 */
export const INBREEDING_CONFIG = {
  /**
   * 위험도 판정 기준 (%)
   * - 정상: < 15%
   * - 주의: 15-20%
   * - 위험: > 20%
   */
  RISK_LEVELS: {
    NORMAL_MAX: 15,      // 정상 상한선 (< 15%)
    WARNING_MIN: 15,     // 주의 하한선 (>= 15%)
    WARNING_MAX: 20,     // 주의 상한선 (<= 20%)
    DANGER_MIN: 20,      // 위험 하한선 (> 20%)
  },

  /**
   * 다세대 시뮬레이션 위험도 판정 기준 (%)
   * - 정상: < 6.25%
   * - 주의: 6.25% ~ 임계값
   * - 위험: > 임계값
   */
  MULTI_GENERATION_RISK_LEVELS: {
    SAFE_MAX: 6.25,      // 안전 상한선 (< 6.25%)
    // WARNING: 6.25% ~ inbreedingThreshold (사용자 지정)
    // DANGER: > inbreedingThreshold (사용자 지정)
  },

  /**
   * 기본 근친도 임계값 (%)
   * Wright's Coefficient 기준 안전 임계값
   */
  DEFAULT_THRESHOLD: 12.5,

  /**
   * 세대별 근친도 영향 감소율
   * - 1세대: 100% 영향
   * - 2세대: 50% 영향 (1/2)
   * - 3세대: 25% 영향 (1/4)
   * - 4세대: 12.5% 영향 (1/8)
   */
  GENERATION_DECAY: {
    GEN_1: 1.0,      // 100%
    GEN_2: 0.5,      // 50%
    GEN_3: 0.25,     // 25%
    GEN_4: 0.125,    // 12.5%
    GEN_5: 0.0625,   // 6.25%
  },

  /**
   * KPN 순환 전략 설정
   */
  ROTATION_STRATEGY: {
    CYCLE_GENERATIONS: 2,  // N세대마다 순환 (기본값: 2세대)
  },

  /**
   * 유리형 비율 평가 기준 (%)
   */
  FAVORABLE_RATE_THRESHOLDS: {
    EXCELLENT: 75,   // 매우 우수 (>= 75%)
    GOOD: 60,        // 양호 (>= 60%)
    AVERAGE: 50,     // 보통 (>= 50%)
    POOR: 70,        // 권장사항 생성 기준 (>= 70%)
  },
} as const;
