"""Database models for Mantimon TCG.

This module exports all SQLAlchemy models for the application.

Models:
    - User: User accounts with OAuth support
    - Collection: Player card collections
    - Deck: Player deck configurations
    - CampaignProgress: Single-player campaign state
    - ActiveGame: In-progress game state
    - GameHistory: Completed game records

Usage:
    from app.db.models import User, Deck, Collection

    user = User(
        email="player@example.com",
        display_name="Player1",
        oauth_provider="google",
        oauth_id="123456789"
    )
"""

from app.db.models.campaign import CampaignProgress
from app.db.models.collection import CardSource, Collection
from app.db.models.deck import Deck
from app.db.models.game import ActiveGame, EndReason, GameHistory, GameType
from app.db.models.oauth_account import OAuthLinkedAccount
from app.db.models.user import User

__all__ = [
    # User
    "User",
    # OAuth
    "OAuthLinkedAccount",
    # Collection
    "Collection",
    "CardSource",
    # Deck
    "Deck",
    # Campaign
    "CampaignProgress",
    # Game
    "ActiveGame",
    "GameHistory",
    "GameType",
    "EndReason",
]
