import asyncio import logging from aiogram import Bot, Dispatcher from config import BOT_TOKEN from handlers import init_handlers from middlewares.di import DIMiddleware from middlewares.repository import RepositoryMiddleware from middlewares.session import DBSessionMiddleware from repositories.orders import OrderRepository from services import OrderService from db.base import async_session logging.basicConfig(level=logging.DEBUG) logger = logging.getLogger(__name__) async def main(): dp = Dispatcher() bot = Bot(token=BOT_TOKEN) # DB services creation order_repository = OrderRepository() order_service = OrderService(order_repository) # DI Middleware Init dp.message.middleware(DIMiddleware(order_service)) dp.message.middleware(DBSessionMiddleware(async_session)) dp.message.middleware(RepositoryMiddleware()) init_handlers(dp) await dp.start_polling(bot) if __name__ == "__main__": asyncio.run(main())