feat: creating chats for cards and clients, sending and deleting text messages

This commit is contained in:
2025-03-27 15:13:10 +04:00
parent a466e46f28
commit 2cdccb33ca
25 changed files with 928 additions and 7 deletions

73
routers/chat.py Normal file
View File

@@ -0,0 +1,73 @@
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)