[feat] add settings with some example schema, initialization and run functionality

This commit is contained in:
h
2025-03-28 21:59:59 +02:00
parent 1a5fd5977e
commit 0f17c1f314
29 changed files with 891 additions and 23 deletions

View File

@@ -0,0 +1 @@
from .settings import SettingsProvider

View File

@@ -0,0 +1 @@
from .user_settings import SettingsProvider

View File

@@ -0,0 +1,20 @@
from aiogram.types import TelegramObject
from dishka import Provider, Scope, provide
from bot.modules.settings import UserSettings
from utils.db import UserSettingsDocument
class SettingsProvider(Provider):
@provide(scope=Scope.REQUEST)
async def get_user_settings(self, event: TelegramObject) -> UserSettings:
if not hasattr(event, "from_user") and (
not hasattr(event, "inline_query") or event.inline_query is None
):
user_id = 0
elif hasattr(event, "inline_query") and event.inline_query is not None:
user_id = event.inline_query.from_user.id
else:
user_id = event.from_user.id
return await UserSettingsDocument.get_user_settings(user_id)