from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from database import get_db from models import Settings from schemas import SettingsUpdate, SettingsOut router = APIRouter(prefix="/settings", tags=["settings"]) @router.get("/", response_model=SettingsOut) def get_settings(db: Session = Depends(get_db)): s = db.query(Settings).filter(Settings.id == 1).first() if not s: s = Settings(id=1) db.add(s) db.commit() db.refresh(s) return s @router.put("/", response_model=SettingsOut) def update_settings(data: SettingsUpdate, db: Session = Depends(get_db)): s = db.query(Settings).filter(Settings.id == 1).first() if not s: s = Settings(id=1) db.add(s) for field, value in data.model_dump(exclude_unset=True).items(): setattr(s, field, value) db.commit() db.refresh(s) return s