/**
 * FEAT-4: Stammbaum-bezogene API-Aufrufe.
 *
 * Der Inzuchtkoeffizient wird serverseitig über die VOLLE Ahnentiefe berechnet
 * (Board-Entscheidung; UI zeigt 4 Generationen, Koeffizient zählt alle).
 * Endpunkt: FEAT-1b (InbreedingController, Wright-Pfadmethode).
 */
import { api, resources } from './client'

/** Spiegelt GerbilManagerWebAPI.Genetics.InbreedingResult. */
export interface InbreedingResult {
  /** Koeffizient F nach Wright, 0..1. */
  coefficient: number
  /** F in Prozent (Server-Komfortfeld). */
  percent: number
  /** Tiefste bekannte Ahnen-Generation (Eltern = 1; 0 = keine erfasst). */
  generationsAvailable: number
  commonAncestors: { id: string; name: string; contribution: number }[]
}

export async function getInbreedingCoefficient(gerbilId: string): Promise<number> {
  const raw = await api.get<InbreedingResult | number>(
    `${resources.gerbils}/${gerbilId}/inbreeding-coefficient`,
  )
  // Defensiv gegen Vertragsdrift (nacktes number vs. Objekt).
  return typeof raw === 'number' ? raw : raw.coefficient
}
