"""Centralized configuration loaded from .env"""
import os
from dotenv import load_dotenv

load_dotenv()

def _ids(v: str):
    return [int(x.strip()) for x in (v or "").split(",") if x.strip()]

BOT_TOKEN = os.getenv("BOT_TOKEN", "")
BOT_USERNAME = os.getenv("BOT_USERNAME", "CartCraftStoreBot")
ADMIN_IDS = _ids(os.getenv("ADMIN_IDS", ""))
ADMIN_USERNAME = os.getenv("ADMIN_USERNAME", "Pro_sller")
STAFF_GROUP_ID = int(os.getenv("STAFF_GROUP_ID") or 0) or None

# Forced channel join
REQUIRED_CHANNEL_LINK = os.getenv("REQUIRED_CHANNEL_LINK", "https://t.me/CartCraftStore")
REQUIRED_CHANNEL_ID = os.getenv("REQUIRED_CHANNEL_ID", "").strip()
try:
    REQUIRED_CHANNEL_ID = int(REQUIRED_CHANNEL_ID) if REQUIRED_CHANNEL_ID else None
except ValueError:
    REQUIRED_CHANNEL_ID = None
FORCE_JOIN_ALWAYS = os.getenv("FORCE_JOIN_ALWAYS", "false").lower() in ("1", "true", "yes")
FORCE_JOIN_STRICT = os.getenv("FORCE_JOIN_STRICT", "false").lower() in ("1", "true", "yes")

# Payment addresses
# BYBIT_UID is the new canonical key; BINANCE_UID kept as fallback for old .env files.
BYBIT_UID = os.getenv("BYBIT_UID", "") or os.getenv("BINANCE_UID", "")
# Back-compat alias
BINANCE_UID = BYBIT_UID
USDT_TRC20_ADDRESS = os.getenv("USDT_TRC20_ADDRESS", "")
USDT_BEP20_ADDRESS = os.getenv("USDT_BEP20_ADDRESS", "")
BTC_ADDRESS = os.getenv("BTC_ADDRESS", "")

# Optional API keys to make the on-chain watchers reliable on free tiers.
BSCSCAN_API_KEY = os.getenv("BSCSCAN_API_KEY", "").strip()
TRONGRID_API_KEY = os.getenv("TRONGRID_API_KEY", "").strip()

# Telegram Stars: how many Stars equal $1 USD (default 120)
STARS_PER_USD = int(os.getenv("STARS_PER_USD", "120"))

# Referral rewards
REFERRAL_ACTIVE_THRESHOLD = int(os.getenv("REFERRAL_ACTIVE_THRESHOLD", "15"))
REFERRAL_ACTIVE_REWARD = float(os.getenv("REFERRAL_ACTIVE_REWARD", "0.30"))
REFERRAL_PURCHASE_MIN = float(os.getenv("REFERRAL_PURCHASE_MIN", "5.00"))
REFERRAL_PURCHASE_REWARD = float(os.getenv("REFERRAL_PURCHASE_REWARD", "0.40"))

DB_PATH = os.getenv("DB_PATH", "cartcraft.db")

PAYMENT_METHODS = {
    "stars": {"label": "⭐ Telegram Stars",                        "address": f"Send Stars to @{ADMIN_USERNAME}"},
    "bybit": {"label": "🟡 Bybit UID",                              "address": BYBIT_UID},
    "trc20": {"label": "{pe:5359437015752401733}🟢 USDT TRC20 (Auto)", "address": USDT_TRC20_ADDRESS},
    "bep20": {"label": "{pe:5359437015752401733}🟡 USDT BEP20 (Auto)", "address": USDT_BEP20_ADDRESS},
    "btc":   {"label": "{pe:5359584650958226302}₿ Bitcoin (Auto)",    "address": BTC_ADDRESS},
}
