# -*- coding: utf-8 -*-
import os

# ⚠️ این مقدار را با توکن ربات جدیدتان (از BotFather) پر کنید.
BOT_TOKEN = os.environ.get("BOT_TOKEN", "8026264193:AAHI7J6Oql63ZO1nbA1Baea7jvROnxPd2_4")

# آیدی عددی ادمین‌ها (با /getid یا @userinfobot بگیرید). می‌توانید چند نفر بگذارید.
ADMIN_IDS = [
    189053046,
    6582402441,
]

# شماره کارت و نام صاحب کارت برای پرداخت کارت‌به‌کارت
CARD_NUMBER = os.environ.get("CARD_NUMBER", "5041-7212-1628-5180")
CARD_HOLDER = os.environ.get("CARD_HOLDER", "مهران جو")

# مسیر فایل دیتابیس (SQLite)
DB_PATH = os.environ.get("DB_PATH", os.path.join(os.path.dirname(__file__), "premium_stars_bot.db"))

# دامنه‌ی هاست شما (بدون اسلش انتهایی)
BASE_URL = os.environ.get("BASE_URL", "https://morsshop.ir/premstars")

# مسیر مخفی وبهوک؛ یک رشته‌ی تصادفی طولانی انتخاب کنید (این‌جا هم می‌توانید تغییرش دهید)
WEBHOOK_PATH = os.environ.get("WEBHOOK_PATH", "/webhook/pqoweiruty1029zxcASDzxc99")

# ⚠️ بعد از تغییر این مقدار حتماً یک‌بار /set_webhook را (با کلید SETUP_KEY) دوباره باز کنید.
WEBHOOK_SECRET = os.environ.get("WEBHOOK_SECRET", "kQ7mP2vN9xR4tY8wA1sD6fG3hJ5cVbZ")

# برای این آدرس‌ها یک‌بار بعد از آپلود اول باز کنید:
#   https://yourdomain.com/premstars/set_webhook?key=<SETUP_KEY>
#   https://yourdomain.com/premstars/set_commands?key=<SETUP_KEY>
SETUP_KEY = os.environ.get("SETUP_KEY", "hT4mQ9zX2vB7nW1eR6yU3iO8pL5sK0j")

# اگر اکانتی که این ربات را ساخته (صاحب ربات، نه لزوماً کاربر) اشتراک تلگرام پریمیوم
# فعال ندارد، آیکون‌های روی دکمه (icon_custom_emoji_id) نمایش داده نمی‌شوند؛ در آن صورت
# این مقدار را False کنید تا به‌جایش ایموجی معمولی اول متن دکمه اضافه شود.
PREMIUM_BUTTON_ICONS = True

# ---------------------------------------------------------------------------
# یوزرنیم ربات (بدون @) برای ساخت لینک دعوت رفرال. اگر خالی بماند، یک‌بار با getMe از تلگرام گرفته می‌شود.
# ---------------------------------------------------------------------------
BOT_USERNAME = os.environ.get("BOT_USERNAME", "")

# ---------------------------------------------------------------------------
# عضویت اجباری در کانال
# ⚠️ ربات حتماً باید در این کانال «ادمین» باشد؛ وگرنه بررسی عضویت (getChatMember) همیشه خطا می‌دهد
# و همه‌ی کاربران به‌عنوان «غیرعضو» رد می‌شوند.
# ---------------------------------------------------------------------------
FORCE_JOIN_CHANNEL_USERNAME = "@MrPremium_IR"
FORCE_JOIN_CHANNEL_LINK = "https://t.me/MrPremium_IR"
FORCE_JOIN_CHANNEL_TITLE = "MrPremium"

# ---------------------------------------------------------------------------
# رفرال (دعوت دوستان): درصد پیش‌فرض پورسانت از مبلغ خرید دعوت‌شده که به کیف پول دعوت‌کننده
# اضافه می‌شود. بعد از اولین تغییر از پنل ادمین («تنظیم درصد رفرال») مقدار داخل دیتابیس ملاک است.
# ---------------------------------------------------------------------------
REFERRAL_PERCENT_DEFAULT = 1.0

# ---------------------------------------------------------------------------
# کیف پول
# ---------------------------------------------------------------------------
TOPUP_MIN_TOMAN = 10_000
TOPUP_MAX_TOMAN = 100_000_000
# مهلت واریز برای سفارش «شارژ کیف پول» (ثانیه) — چون به نرخ تتر وابسته نیست، طولانی‌تر از سفارش‌های عادی است
TOPUP_VALIDITY_SECONDS = 60 * 60

# حداقل فاصله بین دو کلیک روی دکمه‌ها برای هر کاربر (ثانیه) — ضد اسپم
CALLBACK_RATE_LIMIT_SECONDS = 0.6

# دکمه‌ی «فروشگاه» با رنگ آبی (فیلد style="primary" در Bot API تلگرام). اگر روی نسخه‌ی تلگرام/سرور شما
# اثری نداشت یا خطا داد، False کنید.
BUTTON_STYLES_ENABLED = True

# ---------------------------------------------------------------------------
# ⚠️ بسته‌های پرمیوم و استارز فقط بار اول (وقتی دیتابیس خالی است) از لیست‌های پایین خوانده
# می‌شوند. بعد از آن افزودن/حذف/ویرایش بسته‌ها فقط از «پنل ادمین» انجام می‌شود.
# ---------------------------------------------------------------------------

# وقتی ادمین از پنل بسته‌ی استارز جدید اضافه می‌کند، قیمت پایه = تعداد × این عدد (دلار)
# (بعداً از همان پنل می‌توان قیمت پایه‌ی هر بسته را دستی هم تغییر داد)
STARS_USD_PER_STAR = 0.015
# حداقل تعداد استارز مجاز برای بسته‌ی جدید
STARS_MIN_AMOUNT = 50

# تیکتی که بعد از پاسخ پشتیبانی این مدت (ثانیه) بی‌پاسخ بماند خودکار بسته می‌شود
TICKET_AUTO_CLOSE_SECONDS = 2 * 24 * 60 * 60

# ---------------------------------------------------------------------------
# احراز هویت برای مبالغ بالا (هم‌سبک ربات وایرگارد)
# اگر مبلغ پرداخت کارت‌به‌کارت (خرید یا شارژ کیف پول) بیشتر از این حد (تومان) باشد، بعد از ارسال رسید
# از کاربر عکس «کارت بانکی» و «کارت ملی» خواسته می‌شود و تا ارسال هر دو، سفارش به ادمین نمی‌رسد.
# فقط مقدار اولیه است؛ بعد از اولین تغییر از «پنل ادمین ← حد مبلغ احراز هویت» مقدار داخل دیتابیس ملاک است.
# عدد 0 = احراز هویت غیرفعال.
# ---------------------------------------------------------------------------
KYC_DEFAULT_THRESHOLD = 2_000_000
# تعداد عکس لازم (کارت بانکی + کارت ملی)
KYC_MIN_PHOTOS = 2

# ---------------------------------------------------------------------------
# بسته‌های پرمیوم تلگرام: قیمت پایه به دلار (USD). ضریب از پنل ادمین قابل تغییر است
# و جدا نگه داشته شده تا لازم نباشد برای تغییر سود، تک‌تک بسته‌ها را ویرایش کنید.
# ---------------------------------------------------------------------------
PREMIUM_PACKAGES = [
    {"key": "3m", "label": "۳ ماهه", "months": 3, "base_usd": 12.0},
    {"key": "6m", "label": "۶ ماهه", "months": 6, "base_usd": 16.0},
    {"key": "12m", "label": "۱۲ ماهه (یک‌ساله)", "months": 12, "base_usd": 29.0},
]
PREMIUM_MULTIPLIER_DEFAULT = 1.12

# ---------------------------------------------------------------------------
# بسته‌های استارز تلگرام
# ---------------------------------------------------------------------------
STARS_PACKAGES = [
    {"key": "50", "label": "۵۰ استارز", "amount": 50, "base_usd": 0.75},
    {"key": "100", "label": "۱۰۰ استارز", "amount": 100, "base_usd": 1.5},
    {"key": "250", "label": "۲۵۰ استارز", "amount": 250, "base_usd": 3.75},
    {"key": "500", "label": "۵۰۰ استارز", "amount": 500, "base_usd": 7.5},
    {"key": "1000", "label": "۱۰۰۰ استارز", "amount": 1000, "base_usd": 15.0},
]
STARS_MULTIPLIER_DEFAULT = 1.185

# مهلت پرداخت هر سفارش قبل از منقضی‌شدن (دقیقه) — فقط جنبه‌ی نمایشی دارد، سفارش خودکار حذف نمی‌شود
PAYMENT_DEADLINE_MINUTES = 30

# مدت اعتبار قیمت هر سفارش (ثانیه) — بعد از این مدت، اگر کاربر رسید بفرستد پذیرفته نمی‌شود
# و باید از دکمه‌ی «به‌روزرسانی قیمت» یک سفارش تازه با نرخ لحظه‌ای بگیرد.
PRICE_VALIDITY_SECONDS = 5 * 60

# حداقل فاصله بین دو اجرای بررسی دوره‌ای (انقضای خودکار سفارش‌ها) — چون این بررسی روی هر
# وبهوک صدا زده می‌شود، برای جلوگیری از فشار اضافه به دیتابیس محدود به این فاصله می‌شود.
MAINTENANCE_INTERVAL_SECONDS = 60

# --- مینی‌اپ ---
MINIAPP_ENABLED = True          # False = دکمه‌ی مینی‌اپ در ربات نمایش داده نمی‌شود
STARS_CUSTOM_MAX = 10000        # حداکثر تعداد استارز دلخواه در مینی‌اپ (حداقل: STARS_MIN_AMOUNT)
