from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from app.clients.shared_ai_platform import SharedAIPlatformClient, build_shared_ai_platform_client from app.api.reviews import require_current_user from app.core.response import success_response from app.db import get_db_session router = APIRouter(prefix="/conversations", tags=["conversations"]) ROUTE_PERMISSION_SCOPE = "chat_history" ROUTE_PERMISSION_ACTIONS = { "list": "conversations:list", "detail": "conversations:detail", } def get_shared_ai_platform_client(db: Session = Depends(get_db_session)) -> SharedAIPlatformClient: return build_shared_ai_platform_client(db) @router.get("") def list_conversations( page: int = 1, page_size: int = 20, shared_ai_platform_client: SharedAIPlatformClient = Depends(get_shared_ai_platform_client), current_user: dict = Depends(require_current_user), ): return success_response(shared_ai_platform_client.list_conversations(current_user, page, page_size)) @router.get("/{conversation_id}") def get_conversation_detail( conversation_id: str, shared_ai_platform_client: SharedAIPlatformClient = Depends(get_shared_ai_platform_client), current_user: dict = Depends(require_current_user), ): return success_response(shared_ai_platform_client.get_conversation_detail(current_user, conversation_id))