Commit Graph

11 Commits

Author SHA1 Message Date
58787460c4 Update seed data 2026-02-08 22:33:25 +01:00
bbac19677a Fix duplicate sub-areas caused by PokeAPI casing (e.g. 1f vs 1F)
PokeAPI returns both lowercase and uppercase floor names as separate
sub-areas with identical encounter data, causing 649 duplicate routes
across all 22 seed files. Merged case-insensitive duplicates, keeping
the uppercase name and deduplicating encounters. Re-seed required.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:22:50 +01:00
2d4aa9d562 Re-export all seed data from database
Ran --export to refresh seed JSON files with current database state.
Includes updated games, pokemon, routes/encounters, evolutions, and
new firered-bosses.json boss battle data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 12:39:45 +01:00
d50d189114 Update seed data from latest fetch-pokeapi run
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:09:53 +01:00
f57d4793f9 Regenerate seed data with Go fetch tool
Updated all game JSON files with data from the new Go-based PokeAPI
fetcher. Includes corrected encounter data and form identification.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 19:44:14 +01:00
d168d99bba Separate PokeAPI ID from national dex for correct form identification
Pokemon forms (e.g., Alolan Rattata) had their PokeAPI ID (10091) stored as
national_dex, causing them to display incorrectly. This renames the unique
identifier to pokeapi_id and adds a real national_dex field shared between
forms and their base species, so Alolan Rattata correctly shows as #19.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:55:06 +01:00
9aca1806f6 Move starter Pokemon to dedicated route that appears first
Starters are now their own "Starter" route entry instead of being
merged into the location where you receive them (Pallet Town, New Bark
Town, Route 101). This makes them always appear first in the route
list for each game.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:53:40 +01:00
d488c252b8 Add starter, gift, and fossil encounters to seed data
Define special encounter data (starters, gifts, fossils) in a new
special_encounters module and merge them into route seed JSON during
generation. Add new route locations to ROUTE_ORDER for cities that
previously had no wild encounters (Saffron City, Pewter City, etc.).
Show colored method badges in the EncounterModal UI for special
encounter types.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:50:49 +01:00
73d4a1831c Sort seed data routes by game progression instead of alphabetically
Add ROUTE_ORDER maps for Kanto (FRLG), Johto (HGSS), and Hoenn (Emerald)
progressions with aliases for related version groups. Add Export Order
button to admin game detail page for iterating on route orderings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:27:51 +01:00
Julian Tabel
2aa60f0ace Add hierarchical route grouping for multi-area locations
Locations like Mt. Moon (with 1F, B1F, B2F floors) are now grouped so
only one encounter can be logged per location group, enforcing Nuzlocke
first-encounter rules correctly.

- Add parent_route_id column with self-referential FK to routes table
- Add parent/children relationships on Route model
- Update games API to return hierarchical route structure
- Add validation in encounters API to prevent parent route encounters
  and duplicate encounters within sibling routes (409 conflict)
- Update frontend with collapsible RouteGroup component
- Auto-derive route groups from PokeAPI location/location-area structure
- Regenerate seed data with 70 parent routes and 315 child routes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 11:07:45 +01:00
Julian Tabel
cfd4c51514 Add game data seeding from PokeAPI with level ranges
Seed the database with Pokemon game data for 5 games (FireRed, LeafGreen,
Emerald, HeartGold, SoulSilver) using pokebase. Includes Alembic migrations
for route unique constraints and encounter level ranges, a two-phase seed
system (offline fetch to JSON, then idempotent upserts), and Dockerfile
updates for the seed runner.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 15:08:54 +01:00