from fastapi import APIRouter, HTTPException from pydantic import BaseModel from typing import List, Optional from .db_manager import ( get_all_settings, update_settings ) router = APIRouter(prefix="/settings", tags=["settings"]) # --- Pydantic Schemas --- class SettingSchema(BaseModel): id: Optional[int] = None setting_group: str setting_key: str setting_value: str setting_type: str description: Optional[str] = None class SettingUpdateSchema(BaseModel): setting_key: str setting_value: str # --- Settings APIs --- @router.get("/", response_model=List[SettingSchema]) def list_settings(): return get_all_settings() @router.put("/", response_model=dict) def update_multiple_settings(settings: List[SettingUpdateSchema]): # Pydantic 모델 리스트를 일반 dict 리스트로 변환하여 전달 data = [s.dict() for s in settings] success = update_settings(data) if not success: raise HTTPException(status_code=500, detail="Failed to update settings") return {"status": "success"}