"""Repository layer for Mantimon TCG.

This package defines repository protocols (interfaces) and their implementations.
Repositories handle pure data access (CRUD operations), while services contain
business logic.

The protocol pattern enables:
- Easy testing with mock repositories
- Multiple storage backends (PostgreSQL, SQLite, JSON files)
- Offline fork support without rewriting service layer

Usage:
    from app.repositories import CollectionRepository, DeckRepository, UserRepository
    from app.repositories.postgres import PostgresCollectionRepository, PostgresUserRepository

    # In production (dependency injection)
    repo = PostgresCollectionRepository(db_session)
    user_repo = PostgresUserRepository(db_session)

    # In tests
    repo = MockCollectionRepository()
"""

from app.repositories.protocols import (
    CollectionRepository,
    DeckRepository,
    LinkedAccountRepository,
    UserRepository,
)

__all__ = [
    "CollectionRepository",
    "DeckRepository",
    "LinkedAccountRepository",
    "UserRepository",
]
