mantimon-tcg/backend/app/services/__init__.py
Cal Corum 934aa4c443 Add CardService and card data conversion pipeline
- Rename data/cards/ to data/raw/ for scraped data
- Add data/definitions/ as authoritative card data source
- Add convert_cards.py script to transform raw -> definitions
- Generate 378 card definitions (344 Pokemon, 24 Trainers, 10 Energy)
- Add CardService for loading and querying card definitions
  - In-memory indexes for fast lookups by type, set, pokemon_type
  - search() with multiple filter criteria
  - get_all_cards() for GameEngine integration
- Add SetInfo model for set metadata
- Update Attack model with damage_display field for variable damage
- Update CardDefinition with image_path, illustrator, flavor_text
- Add 45 tests (21 converter + 24 CardService)
- Update scraper output path to data/raw/

Card data is JSON-authoritative (no database) to support offline fork goal.
2026-01-27 14:16:40 -06:00

24 lines
617 B
Python

"""Service layer for Mantimon TCG.
Services contain business logic and coordinate between:
- Core game engine
- Database persistence
- Redis caching
- External APIs
Services in this module:
- GameStateManager: Redis-primary, Postgres-backup game state management
- CardService: Load and lookup card definitions from bundled JSON
"""
from app.services.card_service import CardService, SetInfo, get_card_service
from app.services.game_state_manager import GameStateManager, game_state_manager
__all__ = [
"CardService",
"GameStateManager",
"SetInfo",
"game_state_manager",
"get_card_service",
]