Add optional specialty type field to boss battles

Gym leaders, Elite Four, and champions can now have a Pokemon type
specialty (e.g. Rock, Water). Shown as a type image badge on boss
cards in the run view, and editable via dropdown in the admin form.
Includes migration, export, and seed pipeline support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-08 15:23:59 +01:00
parent 1a7476f811
commit 0e4fac8790
10 changed files with 65 additions and 1 deletions

View File

@@ -220,6 +220,7 @@ async def upsert_bosses(
version_group_id=version_group_id,
name=boss["name"],
boss_type=boss["boss_type"],
specialty_type=boss.get("specialty_type"),
badge_name=boss.get("badge_name"),
badge_image_url=boss.get("badge_image_url"),
level_cap=boss["level_cap"],
@@ -232,6 +233,7 @@ async def upsert_bosses(
set_={
"name": boss["name"],
"boss_type": boss["boss_type"],
"specialty_type": boss.get("specialty_type"),
"badge_name": boss.get("badge_name"),
"badge_image_url": boss.get("badge_image_url"),
"level_cap": boss["level_cap"],

View File

@@ -429,6 +429,7 @@ async def _export_bosses(session: AsyncSession, vg_data: dict):
{
"name": b.name,
"boss_type": b.boss_type,
"specialty_type": b.specialty_type,
"badge_name": b.badge_name,
"badge_image_url": b.badge_image_url,
"level_cap": b.level_cap,