"""时光胶囊路由""" 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.capsule import CapsuleCreate from app.services.capsule_service import CapsuleService router = APIRouter() @router.get("/") async def list_capsules( user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """获取我的时光胶囊""" service = CapsuleService(db) return await service.get_capsules(user.id) @router.get("/{capsule_id}") async def get_capsule( capsule_id: str, user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """获取单个胶囊""" service = CapsuleService(db) try: return await service.get_capsule(user.id, capsule_id) except ValueError as e: raise HTTPException(status_code=400, detail=str(e)) @router.post("/") async def create_capsule( req: CapsuleCreate, user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """创建时光胶囊""" service = CapsuleService(db) try: return await service.create_capsule( user.id, req.recipient_id, req.title, req.content, req.unlock_at, req.mood ) except ValueError as e: raise HTTPException(status_code=400, detail=str(e))