from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import ContextTypes

from services.auth_service import is_owner
from services.vip_service import add_package


async def tambah_vip_paket(update: Update, context: ContextTypes.DEFAULT_TYPE):
    if not is_owner(update.effective_user.id):
        return

    text = " ".join(context.args)

    if "|" not in text:
        await update.message.reply_text(
            "Format:\n"
            "/vippaket NAMA|HARGA|GROUP_ID\n\n"
            "Untuk link statis:\n"
            "/vippaket NAMA|HARGA|link=URL\n\n"
            "Contoh:\n"
            "/vippaket VIP PREMIUM|50000|-1003956111712\n"
            "/vippaket VIP MURAH|5000|link=https://t.me/+xxx"
        )
        return

    parts = text.split("|")
    if len(parts) < 3:
        await update.message.reply_text(
            "❌ Format kurang lengkap.\n"
            "Butuh: NAMA|HARGA|GROUP_ID atau NAMA|HARGA|link=URL"
        )
        return

    nama = parts[0].strip()

    try:
        harga = int(parts[1].strip())
    except ValueError:
        await update.message.reply_text("❌ Harga harus berupa angka.")
        return

    ketiga = parts[2].strip()
    group_id = None
    link = None

    if ketiga.lower().startswith("link="):
        link = ketiga[5:].strip()
    else:
        try:
            group_id = int(ketiga)
            # Supergroup/channel ID harus negatif
            if group_id > 0:
                group_id = -group_id
        except ValueError:
            await update.message.reply_text(
                "❌ Argumen ketiga harus Group ID (angka) atau link=URL."
            )
            return

    pkg = add_package(nama, harga, group_id=group_id, link=link)

    context.user_data["editing_vip_id"] = pkg["id"]
    context.user_data["waiting_vip_edit_banner"] = True
    context.user_data["vip_add_flow"] = True
    await update.message.reply_text(
        f"✅ Paket <b>{pkg['nama']}</b> berhasil ditambahkan!\n\n"
        "Sekarang kirim <b>foto banner</b> untuk paket ini.",
        parse_mode="HTML",
    )
