from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlmodel import SQLModel, Session, text
from .config import settings

# Sync engine — required for WSGI (Passenger/cPanel)
engine = create_engine(
    settings.DATABASE_URL,
    echo=False,
    connect_args={"check_same_thread": False},
)

SessionLocal = sessionmaker(
    bind=engine,
    class_=Session,
    expire_on_commit=False,
    autoflush=False,
)

def init_db():
    with engine.begin() as conn:
        conn.execute(text("PRAGMA journal_mode=WAL;"))
    SQLModel.metadata.create_all(engine)

def get_session() -> Session:
    with SessionLocal() as session:
        yield session
