"""API 路由:策略""" from typing import List from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from app.database import get_db from app import crud, schemas router = APIRouter(prefix="/api/strategies", tags=["策略"]) @router.get("", response_model=List[schemas.StrategyOut]) def list_strategies(db: Session = Depends(get_db)): return crud.get_strategies(db) @router.post("", response_model=schemas.StrategyOut, status_code=201) def create_strategy(data: schemas.StrategyCreate, db: Session = Depends(get_db)): return crud.create_strategy(db, data) @router.put("/{strategy_id}", response_model=schemas.StrategyOut) def update_strategy(strategy_id: int, data: schemas.StrategyUpdate, db: Session = Depends(get_db)): obj = crud.update_strategy(db, strategy_id, data) if not obj: raise HTTPException(404, "策略不存在") return obj @router.delete("/{strategy_id}") def delete_strategy(strategy_id: int, db: Session = Depends(get_db)): if not crud.delete_strategy(db, strategy_id): raise HTTPException(404, "策略不存在") return {"ok": True}