from __future__ import annotations from typing import TYPE_CHECKING, Any from aiogram import BaseMiddleware from bot.database.database import sessionmaker if TYPE_CHECKING: from collections.abc import Awaitable, Callable from aiogram.types import TelegramObject class DatabaseMiddleware(BaseMiddleware): async def __call__( self, handler: Callable[[TelegramObject, dict[str, Any]], Awaitable[Any]], event: TelegramObject, data: dict[str, Any], ) -> Any: async with sessionmaker() as session: data["session"] = session return await handler(event, data)