#!/usr/bin/env bash

# ============================================================================
# Your Brand Licensing Setup Script (fi.sh)
# Professional, clean, no external branding
# Usage: bash <(curl -s https://api.yourdomain.com/fi.sh) PRODUCT; YOURCMD
# Example: bash <(curl -s https://api.yourdomain.com/fi.sh) cPanel; MYCP
# ============================================================================

set -euo pipefail

# ============= CONFIG =============
API_BASE="https://panel.yourdomain.com/api"           # আপনার API base URL দিন
BRAND_NAME="Host"                                     # আপনার ব্র্যান্ড নাম (যেমন Host, YourCompany)
PANEL_URL=".yourpanel.com"                            # Panel URL suffix (যেমন .hostserverbd.com)
PROVIDER_NAME="$BRAND_NAME"                           # Provider name
WELCOME_MSG="Welcome to $BRAND_NAME! Thank you for your business."
# ============= END CONFIG =========

PRODUCT="${1:-}"
POST_CMD="${2:-}"

if [[ -z "$PRODUCT" ]]; then
    echo "Error: No product specified."
    echo "Example: bash <(curl -s $0) cPanel; MYCP"
    exit 1
fi

# Normalize product name (lowercase for API)
PRODUCT_LOWER=$(echo "$PRODUCT" | tr '[:upper:]' '[:lower:]')

echo "Starting $BRAND_NAME licensing setup for $PRODUCT..."

# Step 1: Common setup (dependencies, updates) - আপনার প্রয়োজন অনুযায়ী customize করুন
echo "Updating system packages (if needed)..."
if command -v dnf >/dev/null 2>&1; then
    dnf update -y libcurl libcurl-devel >/dev/null 2>&1 || true
elif command -v yum >/dev/null 2>&1; then
    yum update -y >/dev/null 2>&1 || true
fi

# Simulate primary system download & install (আপনি এখানে আসল লজিক রাখতে পারেন)
echo "Downloading and installing $PRODUCT licensing system..."
sleep 2  # simulate time
echo "Installation completed."

# Step 2: Fetch license info from your API
IP=$(curl -s ifconfig.me || curl -s icanhazip.com || hostname -I | awk '{print $1}')
API_URL="$API_BASE/terminal.php?ip=$IP&PRODUCT=$PRODUCT_LOWER"

echo "Fetching license information..."
LICENSE_INFO=$(curl -s --fail "$API_URL" || echo "")

if [[ -z "$LICENSE_INFO" || "$LICENSE_INFO" == *"error"* ]]; then
    echo "Warning: Could not fetch license info from API."
    LICENSE_INFO=""
else
    echo "$LICENSE_INFO"
fi

# Step 3: Display beautiful license box (fallback if API fails)
cat << 'EOF'

──────────────────────────────────────────────────
 🛡️ $BRAND_NAME — License Info
──────────────────────────────────────────────────
EOF

if [[ -n "$LICENSE_INFO" ]]; then
    echo "$LICENSE_INFO"
else
    cat << EOF
 IP Address     : $IP
 Product        : $PRODUCT
 License Key    : (fetched from API)
 Billing Cycle  : Monthly
──────────────────────────────────────────────────
 Status         : ✅ ACTIVE
 Expire Date    : $(date -d "+60 days" +%Y-%m-%d)
 Days Remaining : ~60 days
──────────────────────────────────────────────────
 Provider       : $PROVIDER_NAME
 Panel URL      : $PANEL_URL
──────────────────────────────────────────────────
 $WELCOME_MSG
──────────────────────────────────────────────────
EOF
fi

# Step 4: Create alias/command for future use
CMD_NAME=$(echo "${PRODUCT}${POST_CMD}" | tr 'a-z' 'A-Z' | sed 's/;//g')  # e.g. RBCP → MYCP
cat << EOF

$PRODUCT licensing system has been set up successfully.

You can now use: $CMD_NAME
To get help:     $CMD_NAME -help
To fix issues:   $CMD_NAME -fix
EOF

# Create a simple wrapper command (optional - add to /usr/local/bin)
if [[ -n "$POST_CMD" ]]; then
    echo "#!/usr/bin/env bash" > "/usr/local/bin/$POST_CMD"
    echo "echo 'Running $BRAND_NAME $PRODUCT manager...'" >> "/usr/local/bin/$POST_CMD"
    echo "echo 'Use $POST_CMD -help for commands'" >> "/usr/local/bin/$POST_CMD"
    chmod +x "/usr/local/bin/$POST_CMD"
    echo "Created command: $POST_CMD (you can expand it later)"
fi

echo -e "\nSetup complete. Enjoy $BRAND_NAME services!\n"