"""只读先进先出建议;不强行阻断会议要求的多批次混用。""" from typing import Annotated from fastapi import Query, Request, Response from sqlalchemy.ext.asyncio import AsyncSession from common.aspect.db_seesion import DBSessionDependency from common.aspect.interface_auth import UserInterfaceAuthDependency from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency from common.router import APIRouterPro from common.vo import DataResponseModel from module_admin.entity.vo.user_vo import CurrentUserModel from module_business.dependency.test_batch_dependency import TestBatchScopeDependency from module_business.domain.test_batch_scope import TestBatchScope from module_business.entity.vo.usage_fifo_vo import UsageFifoRecommendationModel from module_business.service.usage_fifo_service import UsageFifoService from utils.response_util import ResponseUtil usage_fifo_controller = APIRouterPro( prefix='/business/usage-fifo', tags=['业务管理-客户现场使用'], dependencies=[PreAuthDependency(), UserInterfaceAuthDependency('business:usage:query')], ) @usage_fifo_controller.get('/recommendation', response_model=DataResponseModel[UsageFifoRecommendationModel]) async def get_usage_fifo_recommendation( request: Request, qr_token: Annotated[str, Query(alias='qrToken', min_length=1, max_length=128, pattern=r'\S')], query_db: Annotated[AsyncSession, DBSessionDependency()], current_user: Annotated[CurrentUserModel, CurrentUserDependency()], test_scope: Annotated[TestBatchScope, TestBatchScopeDependency()], tunnel_id: Annotated[int | None, Query(alias='tunnelId', gt=0)] = None, ) -> Response: result = await UsageFifoService.recommendation( query_db, qr_token, current_user, test_scope, tunnel_id=tunnel_id, ) return ResponseUtil.success(data=result)