Support-BOT
This commit is contained in:
46
app/crud/message.py
Normal file
46
app/crud/message.py
Normal file
@@ -0,0 +1,46 @@
|
||||
from datetime import datetime
|
||||
|
||||
from sqlalchemy import select, and_, func
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.crud.base import CRUDBase
|
||||
from app.models import Message
|
||||
|
||||
|
||||
class CRUDMessage(CRUDBase):
|
||||
async def get_by_date_interval(
|
||||
self,
|
||||
from_date: datetime,
|
||||
to_date: datetime,
|
||||
session: AsyncSession
|
||||
):
|
||||
query = select(Message).where(and_(Message.created_at >= from_date,
|
||||
Message.created_at <= to_date))
|
||||
messages = await session.execute(query)
|
||||
messages = messages.scalars().all()
|
||||
return messages
|
||||
|
||||
async def get_count_user_messages(
|
||||
self,
|
||||
telegram_id: int,
|
||||
session: AsyncSession
|
||||
):
|
||||
stmt = select(func.count()).select_from(
|
||||
select(Message).where(Message.telegram_user_id == telegram_id)
|
||||
)
|
||||
mes_count = await session.execute(stmt)
|
||||
return mes_count.scalars().one()
|
||||
|
||||
async def get_count_answers_to_user(
|
||||
self,
|
||||
telegram_id: int,
|
||||
session: AsyncSession
|
||||
):
|
||||
stmt = select(func.count()).select_from(
|
||||
select(Message).where(Message.answer_to_user_id == telegram_id)
|
||||
)
|
||||
answers_count = await session.execute(stmt)
|
||||
return answers_count.scalars().one()
|
||||
|
||||
|
||||
crud_message = CRUDMessage(Message)
|
||||
Reference in New Issue
Block a user