"""心情叶路由""" from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.ext.asyncio import AsyncSession from app.dependencies import get_db, get_current_user from app.models.user import User from app.schemas.leaf import LeafUpdate from app.services.leaf_service import LeafService router = APIRouter() @router.get("/today") async def get_today_leaf( user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """获取或创建今日心情叶""" service = LeafService(db) return await service.get_or_create_today(user.id) @router.put("/{leaf_id}") async def update_leaf( leaf_id: str, req: LeafUpdate, user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """更新今日叶子的心情和备注""" service = LeafService(db) try: return await service.update_leaf(user.id, leaf_id, req.mood, req.note) except ValueError as e: raise HTTPException(status_code=400, detail=str(e)) @router.get("/collection") async def get_collection( user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """获取叶子收藏""" service = LeafService(db) return await service.get_collection(user.id)