Add subscription link field to user model
- Add subscription_link column to users table (nullable, unique) - Add SUBSCRIPTION_URL to config settings - Update user creation to include subscription link from Remnawave - Add support subscription ticket creation with formatted message - Add "update link" button to main menu - Refactor support subscription formatting to include user details
This commit is contained in:
@@ -171,16 +171,33 @@ def calculate_price(subscription: SubscriptionPlan):
|
||||
) * convert_duration_to_int(subscription.duration)
|
||||
|
||||
|
||||
def format_support_subscription(subscription: SubscriptionPlan) -> str:
|
||||
def format_subscription_link(link: Optional[str] = None):
|
||||
return f"<code>{link or '...'}</code>"
|
||||
|
||||
|
||||
def format_support_subscription(
|
||||
subscription: SubscriptionPlan,
|
||||
full_name: str,
|
||||
user_id: int,
|
||||
username: Optional[str] = None,
|
||||
) -> str:
|
||||
username = format_username(username)
|
||||
whitelist_description = "ВЫКЛ"
|
||||
if subscription.devices >= settings.whitelist_device_threshold:
|
||||
whitelist_description = "ВКЛ (Бесплатно)"
|
||||
elif subscription.whitelists:
|
||||
whitelist_description = "ВКЛ (Платно)"
|
||||
|
||||
return (
|
||||
f"Подписка на {convert_duration_to_int(subscription.duration)} месяцев.\n"
|
||||
f"Количество устройств: {subscription.devices}\n"
|
||||
f"Белые списки: {whitelist_description}\n\n"
|
||||
f"Итого: {calculate_price(subscription)}₽"
|
||||
return texts.SUPPORT_SUBSCRIPTION.format(
|
||||
full_name=full_name,
|
||||
telegram_id=user_id,
|
||||
username_display=username,
|
||||
duration=convert_duration_to_int(subscription.duration),
|
||||
devices=subscription.devices,
|
||||
whitelist_description=whitelist_description,
|
||||
price=calculate_price(subscription),
|
||||
)
|
||||
|
||||
|
||||
def get_subscription_link(short_uuid: str):
|
||||
return settings.subscription_url + "/" + short_uuid
|
||||
|
||||
Reference in New Issue
Block a user