fix(import): Stammbaum-/Eltern-/isResident-Tickets der Züchterin (18)

Import-Logik:
- Externe Gründer (Zooladen/„von Privat"/„from …, <Land>") bekommen keine
  erfundenen Chart-Eltern mehr → Bill, Cooky, Zadar haben korrekt unbekannte
  Eltern (is_external_origin). [#5,#13,#28]
- Hagrid: externe Zucht wird nicht mehr als Bestand markiert (isResident=false)
  + Leerhüllen-Dedup → ein Datensatz mit Eltern Snickers × Milka. [#17,#18,#20a]
- Gender-Index: eindeutiges Geschlecht schlägt unbekanntes Duplikat → Rollen-
  Auflösung repariert (Vance→Mutter Enya, Zac→Vater Vance/Mutter Dorie). [#33,#35]
- „Eltern: X + Y"-Wurfnotizen werden geparst (~46 Würfe); v.d.↔von-den-Namens-
  kanon (Theodore→BlackFire). [#9,#11,#30]

Daten-Overrides (conflict-decisions.json, jetzt auch Gender + exakte Eltern):
- Mozart→weiblich [#2], Yuki=Camaro×Izumi [#23], Gold-Mutter=Chelsea [#36],
  Arya=Vance×Sansa (Geschwisterverpaarung) [#16], Tony→Sammy [#12],
  Odelia [#15], Jamie→Danny [#31], Silver=Taro×Beatrice [#11].

Frontend: GerbilDetailPage blendet für isResident=false Würfe + Charakter aus
(Hinweis nonResidentNote). [#17,#20b]

Tests: test_extract/test_merge_resolve erweitert; vitest 135, playwright tiere 34 grün.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 21:16:53 +02:00
parent 9c6ca2118a
commit ce1704c3b7
9 changed files with 465 additions and 43 deletions

View File

@@ -265,6 +265,69 @@
"father": "Osamu von den Kleinen Chaoten",
"mother": "Montana v.d. Kleinen Chaoten",
"source": "Stammbaum von Kazuya.xlsx"
},
{
"name": "Mozart of Lennylengo",
"dob": "12.03.2017",
"decision": "gender = female (box colour in Stammbaum von Fire Kids.xlsx was misread as male). Mozart is the mother of Stich von Privatzucht Giessen's litter.",
"gender": "female",
"source": "Züchterin 2026-06-22 — Ticket #2 (Stich, Mutter fehlte)"
},
{
"name": "Yuki von den Kleinen Chaoten",
"dob": "03.02.2020",
"decision": "parents are Camaro (Chevrolet Camaro of Topolino) × Izumi, NOT Benjiro + Louis (chart-position misread).",
"father": "Chevrolet Camaro of Topolino",
"mother": "Izumi von den Kleinen Chaoten",
"source": "Züchterin 2026-06-22 — Ticket #23"
},
{
"name": "Gold v.d. Kleinen Chaoten",
"dob": "03.08.2023",
"decision": "mother should be Chelsea von den Kleinen Chaoten (not Gaida — chart-position misread). Father Trogir confirmed via contract 'Platin (Trogir.Chelsea)'.",
"father": "Trogir von den Kleinen Chaoten",
"mother": "Chelsea von den Kleinen Chaoten",
"source": "Züchterin 2026-06-22 — Ticket #36"
},
{
"name": "Arya Stark von den Kleinen Chaoten",
"dob": "30.06.2020",
"decision": "parents are Sansa Stark (mother) × Vance (father) — a sibling pairing (both *09.04.2019). Chart-position had scrambled the roles (mother=Enya, no father).",
"father": "Vance von den Kleinen Chaoten",
"mother": "Sansa Stark von den Kleinen Chaoten",
"source": "Züchterin 2026-06-22 — Ticket #16"
},
{
"name": "Tony v.d. Kleinen Chaoten",
"dob": "16.09.2015",
"decision": "father is Sammy von den Kleinen Chaoten (Wurfchronik L7-Wurf: 'Parents Sammy + Queenie'). Chart-position had fabricated 'Jack Jr.'.",
"father": "Sammy von den Kleinen Chaoten",
"mother": "Qamikaze Queen von den Schlossmäusen",
"source": "Züchterin 2026-06-22 — Ticket #12"
},
{
"name": "Odelia von den Kleinen Chaoten",
"dob": "21.06.2015",
"decision": "parents are Cash × Elena (Wurfchronik O6-Wurf). Chart-position had wrong parents (Chap × Julietta).",
"father": "Cash v.d. Kleinen Chaoten",
"mother": "Elena",
"source": "Züchterin 2026-06-22 — Ticket #15"
},
{
"name": "Jamie von den kleinen Chaoten",
"dob": "27.12.2010",
"decision": "father is Danny von Privatzucht Maintal (Wurfchronik J-Wurf: 'Eltern: Danny + Jana'). Chart-position had wrong/age-impossible parents.",
"father": "Danny von PZ Maintal",
"mother": "Jana of little longnoses",
"source": "Züchterin 2026-06-22 — Ticket #31"
},
{
"name": "Silver von den kleinen Chaoten",
"dob": "20.03.2013",
"decision": "parents are Taro (kept from U1-Wurf) × Beatrice (Wurfchronik F2-Wurf). Cross-page chart reference to Taro was unresolvable.",
"father": "Taro von den kleinen Chaoten",
"mother": "Beatrice von den kleinen Chaoten",
"source": "Züchterin 2026-06-22 — Ticket #11"
}
]
}