"""Presentation switches (demo): stored in `demo_settings`, default from settings/env. SCREENING_ENABLED=false # env default POST /api/v1/demo/settings {"screening_enabled": false} # one button in the demo console Screening off: after consent the patient goes straight to the chat — no onboarding questionnaires. """ from typing import Any from sqlalchemy.ext.asyncio import AsyncSession from app.config import get_settings from app.db.clinical import DemoSetting SCREENING = "screening_enabled" async def get_all(session: AsyncSession) -> dict[str, Any]: row = await session.get(DemoSetting, SCREENING) return {SCREENING: bool(row.value) if row is not None else get_settings().screening_enabled} async def screening_enabled(session: AsyncSession) -> bool: return (await get_all(session))[SCREENING] async def set_screening(session: AsyncSession, enabled: bool) -> None: row = await session.get(DemoSetting, SCREENING) if row is None: session.add(DemoSetting(key=SCREENING, value=enabled)) else: row.value = enabled await session.flush()