import os

ADMIN_IDS = {"u0HzWao0eaa25be616a3a871c5eb71d1"}
ADMIN_IDS.update(x.strip() for x in os.environ.get("BOT_ADMIN_ID", "").split(",") if x.strip())


def is_admin(user_id) -> bool:
    return str(user_id) in ADMIN_IDS


GROW_COOLDOWN = 3600
GOLDEN_EGGPLANT_CHANCE = 0.01
GOLDEN_EGGPLANT_BONUS = 100

ACHIEVEMENTS = [
    {"id": "first_grow", "emoji": "🌱", "type": "grows", "value": 1},
    {"id": "grower_50", "emoji": "🥕", "type": "size", "value": 50},
    {"id": "grower_200", "emoji": "🌳", "type": "size", "value": 200},
    {"id": "grower_500", "emoji": "👑", "type": "size", "value": 500},
    {"id": "golden_first", "emoji": "✨", "type": "golden", "value": 1},
    {"id": "golden_5", "emoji": "🌟", "type": "golden", "value": 5},
    {"id": "grows_50", "emoji": "🔁", "type": "grows", "value": 50},
    {"id": "grows_100", "emoji": "🚀", "type": "grows", "value": 100},
    {"id": "pvp_win_1", "emoji": "⚔️", "type": "wins", "value": 1},
    {"id": "pvp_win_10", "emoji": "🏆", "type": "wins", "value": 10},
    {"id": "pvp_win_20", "emoji": "💪", "type": "wins", "value": 20},
    {"id": "top10_global", "emoji": "🌍", "type": "rank", "value": 10},
    {"id": "top1_global", "emoji": "🥇", "type": "rank", "value": 1},
]

ACHIEVEMENTS_BY_ID = {a["id"]: a for a in ACHIEVEMENTS}


def achievements_earned(stats: dict) -> list:
    stat_key = {
        "size": "size", "grows": "grows_count", "golden": "golden_count",
        "wins": "wins",
    }
    earned = []
    for a in ACHIEVEMENTS:
        if a["type"] not in stat_key:
            continue
        key = stat_key[a["type"]]
        if stats.get(key, 0) >= a["value"]:
            earned.append(a["id"])
    return earned


EVENT_TEMPLATES = [
    {"id": "double_golden_chance", "params": {"golden_chance_multiplier": 2}},
    {"id": "golden_bonus_x2", "params": {"golden_bonus_multiplier": 2}},
    {"id": "grow_boost_50", "params": {"grow_multiplier": 1.5}},
    {"id": "grow_boost_100", "params": {"grow_multiplier": 2.0}},
    {"id": "fast_cooldown_half", "params": {"cooldown_multiplier": 0.5}},
    {"id": "pvp_bonus_20", "params": {"pvp_bonus_percent": 20}},
]

EVENT_TEMPLATES_BY_ID = {t["id"]: t for t in EVENT_TEMPLATES}
