from fastapi import APIRouter, HTTPException from pydantic import BaseModel from typing import Optional from app.services.folder_store import get_folder, update_folder from app.utils.time import now_ts router = APIRouter(prefix="/folders", tags=["folders"]) class UpdateFolderRequest(BaseModel): name: Optional[str] = None color_hex: Optional[str] = None @router.patch("/{folder_id}") def update_folder_api(folder_id: str, req: UpdateFolderRequest): folder = get_folder(folder_id) if not folder: raise HTTPException(status_code=404, detail="Folder not found") updates = req.dict(exclude_unset=True) updates["updated_at"] = now_ts() update_folder(folder_id, updates) return {"folder_id": folder_id, "updated": True}