from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from app.database.models import SystemSetting async def upsert_system_setting( db: AsyncSession, key: str, value: str | None, description: str | None = None, ) -> SystemSetting: result = await db.execute(select(SystemSetting).where(SystemSetting.key == key)) setting = result.scalar_one_or_none() if setting is None: setting = SystemSetting(key=key, value=value, description=description) db.add(setting) else: setting.value = value if description is not None: setting.description = description await db.flush() return setting async def delete_system_setting(db: AsyncSession, key: str) -> None: result = await db.execute(select(SystemSetting).where(SystemSetting.key == key)) setting = result.scalar_one_or_none() if setting is not None: await db.delete(setting) await db.flush()