# src/db/session.py
from sqlalchemy import create_engine, text
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from src.core.config import settings
import logging

DATABASE_URL = settings.getDbConnectionUri()

engine = create_engine(DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

Base = declarative_base()

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)


def get_db():
    db = SessionLocal()
    try:
        # Log database connection status
        logger.info("Database connected successfully")
        yield db
    except Exception as e:
        logger.error(f"Database connection failed: {e}")
        raise
    finally:
        db.close()
