namespace GerbilManagerWebAPI.Dtos
{
/// Zählungen für die Analyse-Übersicht (RennmausPro-III-Import).
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
int Enclosures, // Gehege/Becken
int Acquisitions, // Erwerbe (herktier_tb)
int Reservations, // Reservierungen/Abgaben (abgeben_tb + abstat_tb)
int Returns, // Rücknahmen (getback_tb)
int WaitingList, // Wartelisten-Einträge (nachfrage_tb)
int Exhibitions); // Ausstellungsergebnisse (ausz_tb)
/// Eine Variante eines mehrdeutigen Namens (für die Entscheidung der Züchterin).
public record Rpro3AmbiguousVariant(
int Count,
string Dob,
string Farbe,
string Origin,
bool IsOwn);
public record Rpro3AmbiguousName(
string Name,
IReadOnlyList Variants,
int BareCount);
/// Ein großer sicherer Merge-Cluster (zur Veranschaulichung der Dedup-Wirkung).
public record Rpro3MergeSample(
string Name,
int RecordCount,
string Dob,
string Farbe,
string Origin);
/// Ergebnis von POST /import/rpro3/analyze — schreibt NICHTS in die DB.
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 TopMerges,
IReadOnlyList AmbiguousNames,
bool PhotosProvided,
int PhotoFilesAvailable);
/// Ergebnis von POST /import/rpro3/execute.
public record Rpro3ExecuteResult(
int GerbilsImported,
int LittersImported,
int ContactsImported,
int HealthRecordsImported,
int WeightRecordsImported,
int PhotosImported,
int EnclosuresImported,
int AcquisitionsImported,
int ReservationsImported,
int ReturnsImported,
int WaitingListImported,
int ExhibitionsImported,
string Message);
}