39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
import logging
|
|
from src.core.config import settings
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
# Determine which repository implementation to use
|
|
# Default to Firestore for now
|
|
REPOSITORY_TYPE = "firestore"
|
|
|
|
def init_repositories():
|
|
"""Initialize the repository implementations based on configuration."""
|
|
global REPOSITORY_TYPE
|
|
|
|
logger.info(f"Initializing repositories with type: {REPOSITORY_TYPE}")
|
|
|
|
if REPOSITORY_TYPE == "firestore":
|
|
# Import and initialize Firestore repositories
|
|
from src.db.repositories.firestore_team_repository import firestore_team_repository
|
|
from src.db.providers.firestore_provider import firestore_db
|
|
|
|
# Make sure Firestore client is initialized
|
|
if not firestore_db.client:
|
|
firestore_db.connect()
|
|
|
|
# Replace the default repositories with Firestore implementations
|
|
from src.db.repositories.team_repository import team_repository as default_team_repo
|
|
|
|
# Dynamically update the module to use Firestore repositories
|
|
import sys
|
|
sys.modules["src.db.repositories.team_repository"].team_repository = firestore_team_repository
|
|
|
|
logger.info("Firestore repositories initialized")
|
|
else:
|
|
# Default MongoDB repositories are already imported
|
|
logger.info("Using default MongoDB repositories")
|
|
|
|
# Initialize repositories at module import time
|
|
init_repositories()
|