2025-02-08 10:41:29 +05:00

50 lines
1.1 KiB
Python

from sqlalchemy import insert
from sqlalchemy.ext.asyncio import AsyncSession
from uuid import UUID
from src.core.database import User, TgChat, TgMessage
from src.core.tg_service.schemas import MessageFromChatSchema
async def create_new_user(
session: AsyncSession,
**kwargs
) -> User:
new_user = User(**kwargs)
session.add(new_user)
await session.commit()
return new_user
async def create_new_chat(
session: AsyncSession,
**kwargs
) -> TgChat:
new_chat = TgChat(**kwargs)
session.add(new_chat)
await session.commit()
return new_chat
async def bulk_insert_messages(
messages: list[MessageFromChatSchema],
chunk_id: UUID,
session: AsyncSession,
) -> None:
dicts_for_insert: list[dict] = []
for message in messages:
dumped_schema = message.model_dump()
dumped_schema["chunk_id"] = chunk_id
dicts_for_insert.append(dumped_schema)
stmt = (
insert(TgMessage),
dicts_for_insert,
)
await session.execute(*stmt)
await session.commit()