from telegram import Update, KeyboardButton, ReplyKeyboardMarkup

async def next_truck(update: Update):
    if update.message.location:
        lat, lon = update.message.location.latitude, update.message.location.longitude
        await update.message.reply_text(
            "🎮 *Modo Ruta Activado*\n"
            "🏟️ Estadio Banorte — punto de control fijado.\n"
            f"📍 Coordenadas: ({lat:.5f}, {lon:.5f})\n"
            "🚛 Próximo camión para tu zona aparece *mañana a las 08:00 AM*.\n"
            "💡 Tip: Mantén el área limpia para sumar Monedas Verdes.",
            parse_mode="Markdown",
        )
    else:
        keyboard = [[KeyboardButton("📍 Enviar ubicación", request_location=True)]]
        markup = ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True)
        await update.message.reply_text(
            "🏟️ *Estadio Banorte*\n"
            "Para activar el *radar de camiones*, comparte tu ubicación dentro del estadio.\n"
            "Toca el botón de abajo para fijar tu base.",
            reply_markup=markup,
            parse_mode="Markdown",
        )

async def report_trash(update: Update):
    user_text = update.message.text
    await update.message.reply_text(
        "🧹 *Misión registrada*\n"
        f"“{user_text}”\n"
        "🌱 CO₂ evitado estimado: *1.6 kg*\n"
        "🪙 Recompensa: *+5 Monedas Verdes*\n"
        "🎯 Racha activa: ¡sigue reportando para subir de nivel en Estadio Banorte!",
        parse_mode="Markdown",
    )

async def private_pickup(update: Update):
    if update.message.location:
        await update.message.reply_text(
            "🛵 *Reco Privado invocado*\n"
            "NPC *Pepe (la motito)* aceptó la misión.\n"
            "⏱️ ETA: *10 min*\n"
            "📌 Dirígete al punto indicado y prepara el material. ¡Buen trabajo, asistente!",
            parse_mode="Markdown",
        )
    else:
        keyboard = [[KeyboardButton("📍 Enviar ubicación", request_location=True)]]
        markup = ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True)
        await update.message.reply_text(
            "🎯 Para solicitar *Reco Privado* dentro del *Estadio Banorte*, comparte tu ubicación.\n"
            "Usa el botón de abajo para fijar tu punto.",
            reply_markup=markup,
            parse_mode="Markdown",
        )

async def green_balance(update: Update):
    await update.message.reply_text(
        "📊 *Panel de Progreso — Estadio Banorte*\n"
        "🪙 Monedas Verdes: *23*\n"
        "🌱 CO₂ evitado: *15 kg*\n"
        "🏅 Rango: *Asistente Bronce*\n"
        "➡️ Completa misiones (reportes y entregas) para subir de rango.",
        parse_mode="Markdown",
    )
