"""默契种子路由""" from fastapi import APIRouter, Depends, HTTPException from pydantic import BaseModel, Field from sqlalchemy.ext.asyncio import AsyncSession from app.dependencies import get_db, get_current_user from app.models.user import User from app.services.sync_service import SyncService router = APIRouter() class AnswerSubmit(BaseModel): question_id: str friend_id: str answer: str = Field(..., min_length=1, max_length=500) @router.get("/question") async def get_today_question( user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """获取今日默契题""" service = SyncService(db) try: return await service.get_today_question() except ValueError as e: raise HTTPException(status_code=400, detail=str(e)) @router.post("/answer") async def submit_answer( req: AnswerSubmit, user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """提交答案""" service = SyncService(db) try: return await service.submit_answer(user.id, req.question_id, req.friend_id, req.answer) except ValueError as e: raise HTTPException(status_code=400, detail=str(e)) @router.get("/{seed_id}") async def get_seed( seed_id: str, user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """查看默契种子结果""" service = SyncService(db) try: return await service.get_seed(user.id, seed_id) except ValueError as e: raise HTTPException(status_code=400, detail=str(e))