async def get_setting(db: AsyncSession, key: str, default):
    from app.models import ApplicationSettings
    row = (await db.execute(select(ApplicationSettings).where(ApplicationSettings.key == key))).scalar_one_or_none()
    if row is not None:
        return row.value
    return default


def get_setting_sync(key: str, default):
    """Sync-context settings reader (worker)."""
    from app.db.session import SyncSession
    from app.models import ApplicationSettings
    try:
        with SyncSession() as s:
            row = s.execute(select(ApplicationSettings).where(
                ApplicationSettings.key == key)).scalar_one_or_none()
            return row.value if row is not None else default
    except Exception:
        return default


