Skip to content

feat(game): add unscored game category (§6.10)#41

Merged
Seungpyo1007 merged 1 commit into
mainfrom
feat/game-category
Jul 9, 2026
Merged

feat(game): add unscored game category (§6.10)#41
Seungpyo1007 merged 1 commit into
mainfrom
feat/game-category

Conversation

@Seungpyo1007

Copy link
Copy Markdown
Member

Summary

Adds a game device category (§6.10) — the first non-hardware, non-brand-linked category — to support a large real-data collection (RAWG/IGDB video games) as the TechAPI dataset scales toward 1M records.

Design: standalone table, no brand FK (a game's maker is its studio/publisher, which does not map onto the hardware Brand catalogue — stored as free-text developers/publishers lists). Unscored (like laptop/monitor). Fields: name, release_date (nullable for TBA), rating, rating_count, metacritic, playtime_hours, platforms/genres/stores/developers/publishers/tags (JSON string lists), esrb_rating, background_image.

Changes (the standard add-a-category set):

  • app/models/game.py, app/schemas/game.py + __init__ exports
  • app/schemas/serializers.pygame_read()
  • app/routers/games.py — list (sort + pagination) + detail; registered in app/main.py
  • app/seed.py — game seed block (no FK resolution) + count
  • app/dump.py"games" in COLLECTIONS (unscored)
  • app/validate.pyGAME_REQUIRED + validation block
  • tests/integration/{game_fixtures,test_games}.py

Checks: ruff check app tests ✅ · mypy app ✅ · pytest tests/integration/test_games.py ✅ (4 passed).

Follow-up: TechAPI PR seeds data/game/* from the RAWG dataset + mirrors the validate rule.

Adds a standalone `game` category (video games) — no brand FK; makers stored
as free-text developers/publishers lists. Model + schema + serializer + router
(list/detail, sort, unscored) + main registration + seed + dump COLLECTIONS +
validate (GAME_REQUIRED) + integration tests.

Enables a large real-data category (RAWG/IGDB) for the dataset toward 1M records.
@Seungpyo1007 Seungpyo1007 merged commit 8eb2c3a into main Jul 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant