diff --git a/handlers/admin/character_management.py b/handlers/admin/character_management.py index 2b4cf28..ee35e47 100644 --- a/handlers/admin/character_management.py +++ b/handlers/admin/character_management.py @@ -172,6 +172,10 @@ async def on_rating_input(message: Message, widget: ManagedTextInput, dialog_man user = await User.get(id=character_id) + if abs(user.rating - rating) > settings.MAX_ONE_TIME_RATING: + await message.answer(f"❌ Изменение рейтинга не может превышать {settings.MAX_ONE_TIME_RATING} за раз") + return + rating = min(max(0, rating), settings.MAX_RATING) user.rating = rating diff --git a/services/settings.py b/services/settings.py index 7c9e467..6915665 100644 --- a/services/settings.py +++ b/services/settings.py @@ -29,7 +29,8 @@ class Settings(BaseSettings): MAX_TITLE_LEN: int = 255 MAX_DESCRIPTION_LEN: int = 1023 MAX_LEVEL: int = 20 # D&D максимальный уровень - MAX_RATING: int = 1000 + MAX_RATING: int = 100_000 + MAX_ONE_TIME_RATING: int = 200 MAX_ITEM_QUANTITY: int = 1000 # ^ PostgreSQL