from fastapi import APIRouter from starlette.requests import Request from tortoise.queryset import QuerySet, Prefetch from models.agv import Agv from helper import respond_to from tortoise.contrib.pydantic import pydantic_model_creator from typing import List agv_router = APIRouter(prefix='/agv') @agv_router.get("/") async def read_root(): return {"Hello": "World"} @agv_router.get('/list', summary="列出所有AGV小车的状态") async def index(request: Request, page_no: int = 1, page_size: int = 20): """ 列出所有AGV小车的状态 :param page_no: 1 :param page_size: 20 :return: """ offset = (page_no - 1) * page_size query = QuerySet(Agv).filter(is_valid=True, is_active=True) count = await query.count() agvs = await query.limit(page_size).offset(offset) return respond_to(code=200, data=dict(count=count, data=agvs))