becken→Gehege-Reinigung, herktier→Erwerb, abgeben/abstat→Reservierung, getback→Rücknahmen, nachfrage→Warteliste, ausz→Ausstellungen. Deterministische GUIDs, idempotenter Re-Import. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
67 lines
2.7 KiB
C#
67 lines
2.7 KiB
C#
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
|
|
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)
|
|
|
|
/// <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,
|
|
int EnclosuresImported,
|
|
int AcquisitionsImported,
|
|
int ReservationsImported,
|
|
int ReturnsImported,
|
|
int WaitingListImported,
|
|
int ExhibitionsImported,
|
|
string Message);
|
|
}
|