Commit Graph

5 Commits

Author SHA1 Message Date
c8d8e4b445 Fix ambiguous foreign keys on Pokemon.encounters relationship
Encounter has two FKs to pokemon (pokemon_id and current_pokemon_id),
so the reverse relationship needs an explicit foreign_keys argument.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 19:20:19 +01:00
a911259ef5 Add pokemon status management with death tracking
Implement status change workflow (alive → dead) with confirmation modal,
death cause recording, and visual status indicators on pokemon cards.
Includes backend migration for death_cause field and graveyard view
on the run dashboard.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:36:08 +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
Julian Tabel
d94364d6ce Add database schema with SQLAlchemy async + Alembic migrations
Set up PostgreSQL database layer with async SQLAlchemy 2.0 and asyncpg driver.
Implements 6 core tables (games, routes, pokemon, route_encounters, nuzlocke_runs,
encounters) with foreign keys, indexes, and an initial Alembic migration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 13:29:34 +01:00
Julian Tabel
6ee53a0533 Initial setup of frontend and backend 2026-02-04 17:13:58 +01:00