diff --git a/app/handlers/admin/pricing.py b/app/handlers/admin/pricing.py index 9e968d52..945f3e46 100644 --- a/app/handlers/admin/pricing.py +++ b/app/handlers/admin/pricing.py @@ -134,6 +134,24 @@ CORE_PRICING_ENTRIES: Tuple[SettingEntry, ...] = ( label_en="πŸ’³ Base subscription price", action="price", ), + SettingEntry( + key="BASE_PROMO_GROUP_PERIOD_DISCOUNTS_ENABLED", + section="core", + label_ru="🎟️ Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ скидки для Π³Ρ€ΡƒΠΏΠΏ", + label_en="🎟️ Base group discounts", + action="toggle", + description_ru="Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… скидок для Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠΌΠΎ-ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠ².", + description_en="Enables base discounts for promo group periods.", + ), + SettingEntry( + key="BASE_PROMO_GROUP_PERIOD_DISCOUNTS", + section="core", + label_ru="πŸ”– Π‘ΠΊΠΈΠ΄ΠΊΠΈ ΠΏΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°ΠΌ", + label_en="πŸ”– Period discounts", + action="input", + description_ru="Π€ΠΎΡ€ΠΌΠ°Ρ‚: список ΠΏΠ°Ρ€ Π΄Π½Π΅ΠΉ ΠΈ скидки Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 30:10,60:20).", + description_en="Format: comma-separated day/discount pairs (e.g. 30:10,60:20).", + ), SettingEntry( key="DEFAULT_DEVICE_LIMIT", section="core", diff --git a/app/services/system_settings_service.py b/app/services/system_settings_service.py index 2ba734f3..bf8bf985 100644 --- a/app/services/system_settings_service.py +++ b/app/services/system_settings_service.py @@ -504,6 +504,22 @@ class BotConfigurationService: "warning": "Блишком ΠΌΠ°Π»Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ частым обращСниям ΠΊ ΠΏΠ»Π°Ρ‚Ρ‘ΠΆΠ½Ρ‹ΠΌ API.", "dependencies": "PAYMENT_VERIFICATION_AUTO_CHECK_ENABLED", }, + "BASE_PROMO_GROUP_PERIOD_DISCOUNTS_ENABLED": { + "description": ( + "Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… скидок Π½Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρ‹ подписок Π² Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠΌΠΎ." + ), + "format": "Π‘ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.", + "example": "true", + "warning": "Π‘ΠΊΠΈΠ΄ΠΊΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΏΠ°Ρ€Ρ‹ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ².", + }, + "BASE_PROMO_GROUP_PERIOD_DISCOUNTS": { + "description": ( + "Бписок скидок для Π³Ρ€ΡƒΠΏΠΏ: каТдая ΠΏΠ°Ρ€Π° Π·Π°Π΄Π°Ρ‘Ρ‚ Π΄Π½ΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ скидки." + ), + "format": "Π§Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ ΠΏΠ°Ρ€Ρ‹ Π²ΠΈΠ΄Π° <Π΄Π½Π΅ΠΉ>:<скидка>.", + "example": "30:10,60:20,90:30,180:50,360:65", + "warning": "НСкоррСктныС записи Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹. ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ 0-100.", + }, "AUTO_PURCHASE_AFTER_TOPUP_ENABLED": { "description": ( "ΠŸΡ€ΠΈ достаточном балансС автоматичСски оформляСт ΡΠΎΡ…Ρ€Π°Π½Ρ‘Π½Π½ΡƒΡŽ подписку сразу послС пополнСния."