from typing import Optional from fastapi import Query from cbh.api.chat import chat_router from cbh.api.chat.db_requests import get_all_chats_obj, create_chat_obj from cbh.api.chat.dto import Paging from cbh.api.chat.model import ChatModel from cbh.api.chat.schemas import AllChatWrapper, AllChatResponse from cbh.core.wrappers import CbhResponseWrapper @chat_router.get('/all', response_model_by_alias=False, response_model=AllChatWrapper) async def get_all_chats( pageSize: Optional[int] = Query(10, description="Number of objects to return per page"), pageIndex: Optional[int] = Query(0, description="Page index to retrieve"), ): chats, total_count = await get_all_chats_obj(pageSize, pageIndex) response = AllChatResponse( paging=Paging(pageSize=pageSize, pageIndex=pageIndex, totalCount=total_count), data=chats ) return AllChatWrapper(data=response) @chat_router.post('', response_model_by_alias=False, response_model=CbhResponseWrapper[ChatModel]) async def create_chat(): chat = await create_chat_obj() return CbhResponseWrapper(data=chat)