from fastapi import APIRouter, Depends from sqlmodel import Session from core.database import get_session from schemas.bot import BotCreateRequest, BotPageAuthLoginRequest, BotUpdateRequest from services.bot_management_service import ( authenticate_bot_page_access, create_bot_record, get_bot_detail_cached, list_bots_with_cache, test_provider_connection, update_bot_record, ) router = APIRouter() @router.post("/api/providers/test") async def test_provider(payload: dict): return await test_provider_connection(payload) @router.post("/api/bots") def create_bot(payload: BotCreateRequest, session: Session = Depends(get_session)): return create_bot_record(session, payload=payload) @router.get("/api/bots") def list_bots(session: Session = Depends(get_session)): return list_bots_with_cache(session) @router.get("/api/bots/{bot_id}") def get_bot_detail(bot_id: str, session: Session = Depends(get_session)): return get_bot_detail_cached(session, bot_id=bot_id) @router.post("/api/bots/{bot_id}/auth/login") def login_bot_page(bot_id: str, payload: BotPageAuthLoginRequest, session: Session = Depends(get_session)): return authenticate_bot_page_access(session, bot_id=bot_id, password=payload.password) @router.put("/api/bots/{bot_id}") def update_bot(bot_id: str, payload: BotUpdateRequest, session: Session = Depends(get_session)): return update_bot_record(session, bot_id=bot_id, payload=payload)