from typing import Annotated from fastapi import APIRouter, Depends from sqlalchemy.ext.asyncio import AsyncSession from backend.session import get_session from schemas.chat import * from services.chat import ChatService chat_router = APIRouter( prefix='/chat', tags=['chat'], ) @chat_router.post( '/message', operation_id='send_message', response_model=SendMessageResponse, ) async def send_message( session: Annotated[AsyncSession, Depends(get_session)], request: SendMessageRequest, ): return await ChatService(session).send_message(request) @chat_router.delete( '/message/{message_id}', operation_id='delete_message', response_model=DeleteMessageResponse, ) async def delete_message( session: Annotated[AsyncSession, Depends(get_session)], message_id: int, ): return await ChatService(session).delete_message(message_id) @chat_router.post( '/', operation_id='get_chat', response_model=GetChatResponse, ) async def get_chat( session: Annotated[AsyncSession, Depends(get_session)], request: GetChatRequest, ): return await ChatService(session).get_chat(request) @chat_router.post( '/create', operation_id='create_chat', response_model=CreateChatResponse, ) async def create_chat( session: Annotated[AsyncSession, Depends(get_session)], request: CreateChatRequest, ): return await ChatService(session).create_chat(request) @chat_router.post( '/messages', operation_id='get_messages', response_model=GetMessagesResponse, ) async def get_messages( session: Annotated[AsyncSession, Depends(get_session)], request: GetMessagesRequest, ): return await ChatService(session).get_messages(request)