|
@@ -56,6 +56,7 @@ from app.schemas.llm import ParseUserInputsPayload, ParseUserInputsOut
|
|
|
from app.schemas.account import AccountResponse, AccountCreate, LockRequest
|
|
from app.schemas.account import AccountResponse, AccountCreate, LockRequest
|
|
|
from app.schemas.docker_remote import RemoteServerConfig, DockerStatusOut, DockerLogsRequest, DockerLogsOut, ConfigReadOut, ConfigReadRequest, ConfigUpdateRequest, LogReadRequest, LogReadOut, LogListOut, DockerContainerStatus, DockerActionRequest, ServerConfigItem, ServerListOut, RemoteActionRequest
|
|
from app.schemas.docker_remote import RemoteServerConfig, DockerStatusOut, DockerLogsRequest, DockerLogsOut, ConfigReadOut, ConfigReadRequest, ConfigUpdateRequest, LogReadRequest, LogReadOut, LogListOut, DockerContainerStatus, DockerActionRequest, ServerConfigItem, ServerListOut, RemoteActionRequest
|
|
|
from app.schemas.order_event import VasOrderEventCreate, VasOrderEventOut
|
|
from app.schemas.order_event import VasOrderEventCreate, VasOrderEventOut
|
|
|
|
|
+from app.schemas.troov_session import TroovSessionCreate, TroovSessionUpdate, TroovSessionOut
|
|
|
from app.services.docker_remote_service import DockerRemoteService
|
|
from app.services.docker_remote_service import DockerRemoteService
|
|
|
from app.services.configuration_service import ConfigurationService
|
|
from app.services.configuration_service import ConfigurationService
|
|
|
from app.services.troov_service import TroovService
|
|
from app.services.troov_service import TroovService
|
|
@@ -92,6 +93,7 @@ from app.services.llm_service import LlmService
|
|
|
from app.services.slot_refresh_status_service import SlotRefreshStatusService
|
|
from app.services.slot_refresh_status_service import SlotRefreshStatusService
|
|
|
from app.services.account_service import AccountService
|
|
from app.services.account_service import AccountService
|
|
|
from app.services.order_event_service import OrderEventService
|
|
from app.services.order_event_service import OrderEventService
|
|
|
|
|
+from app.services.troov_session_service import TroovSessionService
|
|
|
|
|
|
|
|
# 公共路由
|
|
# 公共路由
|
|
|
public_router = APIRouter()
|
|
public_router = APIRouter()
|
|
@@ -1564,3 +1566,56 @@ async def get_ticket_messages(
|
|
|
size=size
|
|
size=size
|
|
|
)
|
|
)
|
|
|
return success(data=msgs)
|
|
return success(data=msgs)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+# -----------------------
|
|
|
|
|
+# Troov Session APIs
|
|
|
|
|
+# -----------------------
|
|
|
|
|
+@admin_required_router.post("/troov-session/add", summary="新增troov session", tags=["Troov"], response_model=ApiResponse[TroovSessionOut])
|
|
|
|
|
+async def troov_session_add(
|
|
|
|
|
+ payload: TroovSessionCreate,
|
|
|
|
|
+ db: AsyncSession = Depends(get_db)
|
|
|
|
|
+):
|
|
|
|
|
+ obj = await TroovSessionService.add(db, payload)
|
|
|
|
|
+ return success(data=obj)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@admin_required_router.get("/troov-session/pop", summary="获取并锁定一个pending的troov session", tags=["Troov"], response_model=ApiResponse[TroovSessionOut])
|
|
|
|
|
+async def troov_session_pop(
|
|
|
|
|
+ slot_date: str = Query("", description="slot日期筛选"),
|
|
|
|
|
+ slot_time: str = Query("", description="slot时间筛选"),
|
|
|
|
|
+ db: AsyncSession = Depends(get_db)
|
|
|
|
|
+):
|
|
|
|
|
+ obj = await TroovSessionService.pop(db, slot_date or None, slot_time or None)
|
|
|
|
|
+ return success(data=obj)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@admin_required_router.put("/troov-session/update", summary="更新troov session", tags=["Troov"], response_model=ApiResponse[TroovSessionOut])
|
|
|
|
|
+async def troov_session_update(
|
|
|
|
|
+ session_id: str = Query(..., description="session_id"),
|
|
|
|
|
+ payload: TroovSessionUpdate = Body(...),
|
|
|
|
|
+ db: AsyncSession = Depends(get_db)
|
|
|
|
|
+):
|
|
|
|
|
+ obj = await TroovSessionService.update(db, session_id, payload)
|
|
|
|
|
+ return success(data=obj)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@admin_required_router.get("/troov-session/get", summary="根据session_id获取troov session", tags=["Troov"], response_model=ApiResponse[TroovSessionOut])
|
|
|
|
|
+async def troov_session_get(
|
|
|
|
|
+ session_id: str = Query(..., description="session_id"),
|
|
|
|
|
+ db: AsyncSession = Depends(get_db)
|
|
|
|
|
+):
|
|
|
|
|
+ obj = await TroovSessionService.get_by_session_id(db, session_id)
|
|
|
|
|
+ return success(data=obj)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@admin_required_router.get("/troov-session/list", summary="分页获取troov session列表", tags=["Troov"], response_model=PageResponse[List[TroovSessionOut]])
|
|
|
|
|
+async def troov_session_list(
|
|
|
|
|
+ status: str = Query("", description="状态筛选"),
|
|
|
|
|
+ page: int = Query(0, description="第几页"),
|
|
|
|
|
+ size: int = Query(10, description="分页大小"),
|
|
|
|
|
+ keyword: str = Query("", description="查询条件"),
|
|
|
|
|
+ db: AsyncSession = Depends(get_db)
|
|
|
|
|
+):
|
|
|
|
|
+ obj = await TroovSessionService.list(db, status, keyword, page, size)
|
|
|
|
|
+ return success(data=obj)
|