"""念念回音路由""" 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.echo_service import EchoService router = APIRouter() class EchoCreate(BaseModel): to_user_id: str message: str | None = Field(None, max_length=50) @router.post("/") async def send_echo( req: EchoCreate, user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """发送一片回音叶""" service = EchoService(db) try: return await service.send_echo(user.id, req.to_user_id, req.message) except ValueError as e: raise HTTPException(status_code=400, detail=str(e)) @router.get("/") async def list_echoes( user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """获取回音列表""" service = EchoService(db) return await service.get_echoes(user.id)