"""
Message Templates with Premium Emojis
"""
from config.settings import (
    EMOJI_WARNING, EMOJI_FIRE, EMOJI_COIN, 
    EMOJI_GIFT, EMOJI_CHECK, EMOJI_LINK
)


class MessageTemplates:
    """Message templates with HTML formatting and premium emojis"""
    
    @staticmethod
    def welcome(first_name: str) -> str:
        """Welcome message"""
        return f"""
سلام <b>{first_name}</b>! 👋

خوش‌آمدید به ربات فروشگاه <tg-emoji emoji-id="{EMOJI_FIRE}">🔥</tg-emoji>

ما برای شما ارائه می‌دهیم:
┌─ 🛍️ پلن‌های VPN/V2ray بهترین کیفیت
├─ 🪙 سیستم زیرمجموعه‌گیری و پاداش
├─ 💳 پرداخت از طریق تومان یا ارز دیجیتال
└─ ⭐ پشتیبانی 24/7

برای شروع روی دکمه زیر کلیک کنید.
"""
    
    @staticmethod
    def warning_margin() -> str:
        """Warning message for trading margin"""
        return f'<tg-emoji emoji-id="{EMOJI_WARNING}">⚠️</tg-emoji> توجه : مارجین شما برای تمدید اشتراک عضویت در لایو تریدینگ ترید زون کافی نمی‌باشد...'
    
    @staticmethod
    def shop_menu() -> str:
        """Shop menu message"""
        return """
🛍️ <b>فروشگاه VPN/V2ray</b>

لطفاً یکی از گزینه‌های زیر را انتخاب کنید:
"""
    
    @staticmethod
    def plans_list(plans: list) -> str:
        """Plans list message"""
        message = """
📋 <b>پلن‌های موجود:</b>

"""
        for idx, plan in enumerate(plans, 1):
            message += f"""
<b>{idx}. {plan['name']}</b>
├─ حجم: <code>{plan['volume_gb']} GB</code>
├─ مدت: <code>{plan['duration_days']} روز</code>
├─ قیمت (تومان): <code>{plan['price_toman']:,} تومان</code>
└─ قیمت (USDT): <code>${plan['price_usdt']}</code>
"""
        return message
    
    @staticmethod
    def wallet_info(balance_coin: int, balance_toman: float) -> str:
        """Wallet information message"""
        return f"""
💰 <b>کیف پول شما</b>

<tg-emoji emoji-id="{EMOJI_COIN}">🪙</tg-emoji> سکه: <code>{balance_coin}</code>
💵 تومان: <code>{balance_toman:,}</code>

<i>برای خریداری بیشتر از دوستان خود دعوت کنید!</i>
"""
    
    @staticmethod
    def referral_info(referral_code: str, referrals_count: int, referral_link: str) -> str:
        """Referral information message"""
        return f"""
👥 <b>سیستم زیرمجموعه‌گیری</b>

کد معرف شما: <code>{referral_code}</code>
تعداد افرادی که دعوت کرده‌اید: <b>{referrals_count}</b>

<tg-emoji emoji-id="{EMOJI_LINK}">🔗</tg-emoji> <b>لینک دعوت:</b>
<code>{referral_link}</code>

<b>چگونه کار می‌کند؟</b>
• هر 2 دعوت موفق = 500 سکه
• بتوانید سکه‌ها را به کانفیگ تبدیل کنید
"""
    
    @staticmethod
    def admin_stats(total_users: int, active_users: int, 
                   total_sales: float, total_referrals: int) -> str:
        """Admin stats message"""
        return f"""
📊 <b>آمار ربات</b>

👥 کل کاربران: <code>{total_users}</code>
✅ کاربران فعال: <code>{active_users}</code>
💰 کل فروش: <code>{total_sales:,} تومان</code>
🎁 کل دعوت‌ها: <code>{total_referrals}</code>

📈 <b>آمار پیشرفتی:</b>
├─ میزان فعال‌سازی: {(active_users/total_users*100 if total_users > 0 else 0):.1f}%
└─ درآمد متوسط: {(total_sales/total_users if total_users > 0 else 0):,.0f} تومان
"""
    
    @staticmethod
    def transaction_pending() -> str:
        """Transaction pending message"""
        return f"""
⏳ <b>پرداخت در انتظار تایید</b>

شماره تراکنش شما ثبت شد.
لطفاً منتظر تایید مدیریت باشید.

از تمام اطلاعات مراقبت کنید.
"""
    
    @staticmethod
    def transaction_success() -> str:
        """Transaction success message"""
        return f"""
✅ <b>پرداخت موفق</b>

پلن شما به‌زودی فعال می‌شود.
کانفیگ را از قسمت "پلن‌های فعال" دریافت کنید.

"""
    
    @staticmethod
    def payment_instruction(amount: float, wallet_address: str, currency: str) -> str:
        """Payment instruction message"""
        return f"""
💳 <b>اطلاعات پرداخت</b>

مبلغ مورد نیاز: <code>{amount}</code> {currency}

آدرس کیف‌پول:
<code>{wallet_address}</code>

⚠️ <b>توجه:</b>
• کپی و در قسمت انتقال وارد کنید
• بعد از تایید، کانفیگ شما فعال می‌شود
• هرگز صحافی را به کسی ندهید
"""
    
    @staticmethod
    def admin_broadcast_prompt() -> str:
        """Broadcast message prompt"""
        return f"""
📢 <b>ارسال پیام همگانی</b>

<tg-emoji emoji-id="{EMOJI_WARNING}">⚠️</tg-emoji> این پیام به تمام کاربران ارسال خواهد شد!

لطفاً متن پیام را ارسال کنید:
"""
    
    @staticmethod
    def admin_user_found(user: dict) -> str:
        """Admin user found message"""
        return f"""
👤 <b>اطلاعات کاربر</b>

شناسه: <code>{user['id']}</code>
نام: {user.get('first_name', 'نامشخص')}
نام کاربری: @{user.get('username', 'ندارد')}

💰 موجودی سکه: <code>{user['balance_coin']}</code>
💵 موجودی تومان: <code>{user['balance_toman']:,}</code>
📦 تعداد خریداری: <code>{user['configs_purchased']}</code>
👥 تعداد معرفی: <code>{user['referrals_count']}</code>

وضعیت: {'🚫 مسدود' if user['is_blocked'] else '✅ فعال'}
"""
