"""
Data models for Code of Conquest.

This package contains all dataclass models used throughout the application.
"""

# Enums
from app.models.enums import (
    EffectType,
    DamageType,
    ItemType,
    StatType,
    AbilityType,
    CombatStatus,
    SessionStatus,
    ListingStatus,
    ListingType,
)

# Core models
from app.models.stats import Stats
from app.models.effects import Effect
from app.models.abilities import Ability, AbilityLoader
from app.models.items import Item

# Progression
from app.models.skills import SkillNode, SkillTree, PlayerClass

# Character
from app.models.character import Character

# Combat
from app.models.combat import Combatant, CombatEncounter

# Session
from app.models.session import (
    SessionConfig,
    GameState,
    ConversationEntry,
    GameSession,
)

# Marketplace
from app.models.marketplace import (
    Bid,
    MarketplaceListing,
    Transaction,
    ShopItem,
)

__all__ = [
    # Enums
    "EffectType",
    "DamageType",
    "ItemType",
    "StatType",
    "AbilityType",
    "CombatStatus",
    "SessionStatus",
    "ListingStatus",
    "ListingType",
    # Core models
    "Stats",
    "Effect",
    "Ability",
    "AbilityLoader",
    "Item",
    # Progression
    "SkillNode",
    "SkillTree",
    "PlayerClass",
    # Character
    "Character",
    # Combat
    "Combatant",
    "CombatEncounter",
    # Session
    "SessionConfig",
    "GameState",
    "ConversationEntry",
    "GameSession",
    # Marketplace
    "Bid",
    "MarketplaceListing",
    "Transaction",
    "ShopItem",
]
