def _kind_for(ext: str) -> Optional[str]: for kind, exts in ALLOWED_EXTENSIONS.items(): if ext in exts: return kind return None def _serialize(att: Attachment) -> dict: return { "id": att.id, "name": att.name, "kind": att.kind, "filename": att.filename, "mime_type": att.mime_type, "size_bytes": att.size_bytes, === settings list === async def list_settings(db: AsyncSession = Depends(get_db), user: User = Depends(get_current_user)): """All settings with current values (DB overrides) and metadata for the UI.""" rows = (await db.execute( select(ApplicationSettings).where(ApplicationSettings.key.in_(SETTING_DEFS.keys())) )).scalars().all() stored = {r.key: r.value for r in rows} out = [] for key, d in SETTING_DEFS.items(): out.append({ "key": key, "label": d["label"], "category": d["category"], "type": d["type"], "value": stored.get(key, d["default"]), "default": d["default"], "is_default": key not in stored, }) return {"settings": out}