Merge branch 'worktree-agent-a1dfa0392b5ace900'

# Conflicts:
#	gerbil-manager-web/e2e/mock-data.ts
#	gerbil-manager-web/src/App.tsx
This commit is contained in:
2026-06-22 22:52:45 +02:00
20 changed files with 2622 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
namespace GerbilManagerWebAPI.Dtos
{
/// <summary>Zählungen für die Analyse-Übersicht (RennmausPro-III-Import).</summary>
public record Rpro3Counts(
int OwnAnimals, // eigene Tiere (stamm)
int ExternalRaw, // externe Ahnen (fremd, roh, vor Dedup)
int ExternalAfterDedup, // externe Ahnen nach Dedup
int Litters, // Würfe
int Contacts, // Kontakte (Herkunft + Abnehmer)
int Genotypes, // hinterlegte Genotypen (eigen + extern)
int DuplicatesMerged, // weggefallene interne Dubletten
int MergeClusters); // Anzahl zusammengelegter Cluster
/// <summary>Eine Variante eines mehrdeutigen Namens (für die Entscheidung der Züchterin).</summary>
public record Rpro3AmbiguousVariant(
int Count,
string Dob,
string Farbe,
string Origin,
bool IsOwn);
public record Rpro3AmbiguousName(
string Name,
IReadOnlyList<Rpro3AmbiguousVariant> Variants,
int BareCount);
/// <summary>Ein großer sicherer Merge-Cluster (zur Veranschaulichung der Dedup-Wirkung).</summary>
public record Rpro3MergeSample(
string Name,
int RecordCount,
string Dob,
string Farbe,
string Origin);
/// <summary>Ergebnis von POST /import/rpro3/analyze — schreibt NICHTS in die DB.</summary>
public record Rpro3AnalyzeResult(
Rpro3Counts Counts,
int NewVsCurrentNew, // wie viele Tiere im aktuellen Stand fehlen würden (neu)
int NewVsCurrentExisting, // wie viele schon vorhanden sind (Match)
IReadOnlyList<Rpro3MergeSample> TopMerges,
IReadOnlyList<Rpro3AmbiguousName> AmbiguousNames,
bool PhotosProvided,
int PhotoFilesAvailable);
/// <summary>Ergebnis von POST /import/rpro3/execute.</summary>
public record Rpro3ExecuteResult(
int GerbilsImported,
int LittersImported,
int ContactsImported,
int HealthRecordsImported,
int WeightRecordsImported,
int PhotosImported,
string Message);
}