"""
Database Configuration für Content Service
"""
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.pool import StaticPool
import os

try:
    from secret_store import get_secret
    DATABASE_URL = get_secret("CONTENT_DB_URL", default=os.getenv("DATABASE_URL", ""))
except ImportError:
    # Fallback wenn secret_store nicht verfügbar
    DATABASE_URL = os.getenv("CONTENT_DB_URL", os.getenv("DATABASE_URL", ""))

if not DATABASE_URL:
    raise ValueError("DATABASE_URL nicht konfiguriert - bitte via Vault oder Umgebungsvariable setzen")

# Engine configuration
engine = create_engine(
    DATABASE_URL,
    pool_pre_ping=True,
    pool_size=10,
    max_overflow=20,
    echo=os.getenv("SQL_ECHO", "false").lower() == "true"
)

# Session factory
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

# Dependency für FastAPI
def get_db():
    """Database dependency for FastAPI endpoints"""
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()
