Add after_route_name to boss battle export/seed pipeline
Exports now include after_route_name (resolved from the route FK), and the seed loader resolves it back to an ID on import. Also adds a draft bean for displaying encounter-less locations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -211,10 +211,19 @@ async def upsert_bosses(
|
||||
version_group_id: int,
|
||||
bosses: list[dict],
|
||||
dex_to_id: dict[int, int],
|
||||
route_name_to_id: dict[str, int] | None = None,
|
||||
) -> int:
|
||||
"""Upsert boss battles for a version group, return count of bosses upserted."""
|
||||
count = 0
|
||||
for boss in bosses:
|
||||
# Resolve after_route_name to an ID
|
||||
after_route_id = None
|
||||
after_route_name = boss.get("after_route_name")
|
||||
if after_route_name and route_name_to_id:
|
||||
after_route_id = route_name_to_id.get(after_route_name)
|
||||
if after_route_id is None:
|
||||
print(f" Warning: route '{after_route_name}' not found for boss '{boss['name']}'")
|
||||
|
||||
# Upsert the boss battle on (version_group_id, order) conflict
|
||||
stmt = insert(BossBattle).values(
|
||||
version_group_id=version_group_id,
|
||||
@@ -225,6 +234,7 @@ async def upsert_bosses(
|
||||
badge_image_url=boss.get("badge_image_url"),
|
||||
level_cap=boss["level_cap"],
|
||||
order=boss["order"],
|
||||
after_route_id=after_route_id,
|
||||
location=boss["location"],
|
||||
section=boss.get("section"),
|
||||
sprite_url=boss.get("sprite_url"),
|
||||
@@ -237,6 +247,7 @@ async def upsert_bosses(
|
||||
"badge_name": boss.get("badge_name"),
|
||||
"badge_image_url": boss.get("badge_image_url"),
|
||||
"level_cap": boss["level_cap"],
|
||||
"after_route_id": after_route_id,
|
||||
"location": boss["location"],
|
||||
"section": boss.get("section"),
|
||||
"sprite_url": boss.get("sprite_url"),
|
||||
|
||||
Reference in New Issue
Block a user