"""生产订单 API 端点""" from __future__ import annotations import uuid from fastapi import APIRouter, Depends, Query from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm import selectinload from app.core.database import get_db from app.models.production_order import ProductionOrder from app.schemas.order import OrderCreate, OrderResponse from app.services.auth_service import get_current_user router = APIRouter(prefix="/orders", tags=["订单管理"]) @router.get("/", response_model=list[OrderResponse]) async def list_orders( skip: int = Query(0, ge=0), limit: int = Query(50, ge=1, le=200), db: AsyncSession = Depends(get_db), current_user: dict = Depends(get_current_user), ): result = await db.execute( select(ProductionOrder).offset(skip).limit(limit).order_by(ProductionOrder.created_at.desc()) ) orders = result.scalars().all() return [OrderResponse.model_validate(o) for o in orders] @router.post("/", response_model=OrderResponse, status_code=201) async def create_order( data: OrderCreate, db: AsyncSession = Depends(get_db), current_user: dict = Depends(get_current_user), ): order = ProductionOrder(**data.model_dump()) db.add(order) await db.commit() await db.refresh(order) return OrderResponse.model_validate(order)