#!/bin/bash
# Imunify360 Mobile Monitor - With Alert Display

API_URL="https://10years.websnoogie.com/api/imunify-data.json"

while true; do
    clear
    
    DATA=$(curl -s "$API_URL")
    
    if [ $? -ne 0 ]; then
        echo "=================================="
        echo "🔴 ERROR: Cannot fetch data"
        echo "=================================="
        sleep 30
        continue
    fi
    
    # Extract alert data
    ALERT_LEVEL=$(echo "$DATA" | jq -r '.alert.level')
    ALERT_MESSAGE=$(echo "$DATA" | jq -r '.alert.message')
    ALERT_DETAILS=$(echo "$DATA" | jq -r '.alert.details')
    
    # Display alert banner if active
    if [ "$ALERT_LEVEL" != "none" ] && [ "$ALERT_LEVEL" != "null" ]; then
        case "$ALERT_LEVEL" in
            critical)
                echo -e "\033[1;41m                                    \033[0m"
                echo -e "\033[1;41m  🚨 CRITICAL ALERT                \033[0m"
                echo -e "\033[1;41m                                    \033[0m"
                ;;
            warning)
                echo -e "\033[1;43m                                    \033[0m"
                echo -e "\033[1;43m  ⚠️  WARNING                       \033[0m"
                echo -e "\033[1;43m                                    \033[0m"
                ;;
            elevated)
                echo -e "\033[1;44m                                    \033[0m"
                echo -e "\033[1;44m  📊 ELEVATED ACTIVITY              \033[0m"
                echo -e "\033[1;44m                                    \033[0m"
                ;;
        esac
        echo -e "\033[1;37m$ALERT_MESSAGE\033[0m"
        if [ "$ALERT_DETAILS" != "null" ] && [ -n "$ALERT_DETAILS" ]; then
            echo -e "\033[0;37m$ALERT_DETAILS\033[0m"
        fi
        echo ""
    fi
    
    echo "==================================="
    echo "   IMUNIFY360 COUNTRY MONITOR"
    echo "   10years.websnoogie.com"
    echo "==================================="
    
    UPDATED=$(echo "$DATA" | jq -r '.updated_at')
    TOTAL=$(echo "$DATA" | jq -r '.statistics.total_incidents')
    ACCOUNTS=$(echo "$DATA" | jq -r '.statistics.total_accounts')
    INCIDENTS_PER_HOUR=$(echo "$DATA" | jq -r '.statistics.incidents_per_hour')
    BASELINE=$(echo "$DATA" | jq -r '.statistics.baseline_avg')
    
    echo "Updated: $UPDATED"
    echo "Monitoring: $ACCOUNTS accounts"
    echo "Total Incidents (24h): $TOTAL"
    
    if [ "$INCIDENTS_PER_HOUR" != "null" ]; then
        printf "Rate: %.1f/hr (baseline: %.1f/hr)\n" "$INCIDENTS_PER_HOUR" "$BASELINE"
    fi
    
    echo ""
    echo "TOP 10 COUNTRIES:"
    echo "-----------------------------------"
    
    echo "$DATA" | jq -r '.top_countries[] | "\(.count)\t\(.country_code)"' | \
    while IFS=$'\t' read -r count code; do
        if [ "$count" -gt 100 ]; then
            COLOR="\033[1;31m"
        elif [ "$count" -gt 50 ]; then
            COLOR="\033[1;33m"
        else
            COLOR="\033[1;32m"
        fi
        
        BAR_LENGTH=$((count / 10))
        [ "$BAR_LENGTH" -gt 50 ] && BAR_LENGTH=50
        BARS=$(printf '█%.0s' $(seq 1 $BAR_LENGTH))
        
        printf "${COLOR}%-4s %5d %s\033[0m\n" "$code" "$count" "$BARS"
    done
    
    echo ""
    echo "Press Ctrl+C to exit | Refreshing in 30s..."
    sleep 30
done