from fastapi import APIRouter, HTTPException, Query from typing import List from ..schemas.story import Story, StoryCreate, StoryUpdate from ..services.story import story_service router = APIRouter() @router.get("/", response_model=List[Story]) async def list_stories( skip: int = Query(0, ge=0), limit: int = Query(10, ge=1, le=100) ): """ 获取故事列表 """ return story_service.get_stories(skip=skip, limit=limit) @router.post("/", response_model=Story) async def create_story(story: StoryCreate): """ 创建新故事 """ return story_service.create_story(story) @router.get("/{story_id}", response_model=Story) async def get_story(story_id: str): """ 获取特定故事的详细信息 """ story = story_service.get_story(story_id) if story is None: raise HTTPException(status_code=404, detail="Story not found") return story @router.put("/{story_id}", response_model=Story) async def update_story(story_id: str, story: StoryUpdate): """ 更新故事信息 """ updated_story = story_service.update_story(story_id, story) if updated_story is None: raise HTTPException(status_code=404, detail="Story not found") return updated_story @router.delete("/{story_id}") async def delete_story(story_id: str): """ 删除故事 """ if not story_service.delete_story(story_id): raise HTTPException(status_code=404, detail="Story not found") return {"message": "Story deleted successfully"}