import os from dotenv import load_dotenv from sqlmodel import Session, SQLModel, create_engine, select load_dotenv() DATABASE_URL = os.getenv("DATABASE_URL", "sqlite:///./bashyoverlay.db") engine = create_engine(DATABASE_URL, connect_args={"check_same_thread": False}) def create_db() -> None: SQLModel.metadata.create_all(engine) def get_session(): with Session(engine) as session: yield session def get_settings(): from app.models import Settings with Session(engine) as session: s = session.exec(select(Settings)).first() if not s: s = Settings() session.add(s) session.commit() session.refresh(s) return s def get_layout(): from app.models import OverlayLayout with Session(engine) as session: layout = session.exec(select(OverlayLayout)).first() if not layout: layout = OverlayLayout() session.add(layout) session.commit() session.refresh(layout) return layout def get_admin_user(): from app.models import User with Session(engine) as session: return session.exec(select(User).where(User.is_admin == True)).first()