feat: implement subscription management and billing enhancements
This commit is contained in:
@@ -5,7 +5,8 @@ from random import choice
|
||||
|
||||
from bot import texts
|
||||
from config import settings
|
||||
from schemas.subscriptions import SubscriptionDuration, SubscriptionPlan
|
||||
from schemas.subscriptions import InternalSquads, SubscriptionDuration, SubscriptionPlan
|
||||
from services.rw import RWUserInfo
|
||||
|
||||
QUOTES: list[str] = [
|
||||
"Верните себе свободный интернет.",
|
||||
@@ -233,3 +234,12 @@ def get_subscription_link(short_uuid: str):
|
||||
|
||||
def build_main_menu_text(link: str, balance: int) -> str:
|
||||
return texts.MAIN_MENU.format(quote=fetch_quote(), link=link, balance=balance)
|
||||
|
||||
|
||||
def is_same_plan(rw_user: RWUserInfo, new_plan: SubscriptionPlan) -> bool:
|
||||
if rw_user.hwid_device_limit != new_plan.devices:
|
||||
return False
|
||||
|
||||
active_squad_uuids = {squad["uuid"] for squad in rw_user.active_squads}
|
||||
current_has_whitelist = InternalSquads.WHITELISTS in active_squad_uuids
|
||||
return current_has_whitelist == new_plan.whitelists
|
||||
|
||||
Reference in New Issue
Block a user