#!/bin/bash

# Verifikacijski scan - Faza 5
# Provjera primijenjenih WDR, 3DNR, FPS, Bitrate vrijednosti

USERNAME="admin"
PASSWORD="$(cred dahua/default)"
LOG_FILE="/home/tropic_bot/.openclaw/workspace/dahua-firmware/settings-phase5-log.json"
VERIFICATION_FILE="/home/tropic_bot/.openclaw/workspace/dahua-firmware/verification-phase5.json"

# Inicijalizacija verifikacijskog loga
echo "{" > "$VERIFICATION_FILE"
echo "  \"timestamp\": \"$(date -Iseconds)\"," >> "$VERIFICATION_FILE"
echo "  \"type\": \"verification_phase5\"," >> "$VERIFICATION_FILE"
echo "  \"cameras\": [" >> "$VERIFICATION_FILE"

FIRST=true

# Kamere za provjeru
declare -A CAMERAS
CAMERAS[201]="192.168.0.201"
CAMERAS[202]="192.168.0.202"
CAMERAS[203]="192.168.0.203"
CAMERAS[205]="192.168.0.205"
CAMERAS[206]="192.168.0.206"
CAMERAS[209]="192.168.0.209"
CAMERAS[210]="192.168.0.210"
CAMERAS[211]="192.168.0.211"
CAMERAS[212]="192.168.0.212"
CAMERAS[213]="192.168.0.213"
CAMERAS[215]="192.168.0.215"
CAMERAS[236]="192.168.0.236"
CAMERAS[239]="192.168.0.239"

for id in 201 202 203 205 206 209 210 211 212 213 215 236 239; do
    ip="${CAMERAS[$id]}"
    echo "Verifying camera .$id ($ip)..."
    
    if [ "$FIRST" = true ]; then
        FIRST=false
    else
        echo "    ," >> "$VERIFICATION_FILE"
    fi
    
    echo "    {" >> "$VERIFICATION_FILE"
    echo "      \"ip\": \"$ip\"," >> "$VERIFICATION_FILE"
    echo "      \"id\": \"$id\"," >> "$VERIFICATION_FILE"
    
    # WDR provjera - URL enkodirane uglaste zagrade
    echo "      \"wdr\": {" >> "$VERIFICATION_FILE"
    wdr_response=$(curl -s --digest -u "$USERNAME:$PASSWORD" "http://$ip/cgi-bin/configManager.cgi?action=getConfig&name=VideoColor%5B0%5D%5B0%5D.WDR" 2>&1)
    echo "        \"raw_response\": \"$(echo "$wdr_response" | tr '\n' ' ' | sed 's/"/\\"/g')\"" >> "$VERIFICATION_FILE"
    echo "      }," >> "$VERIFICATION_FILE"
    
    # 3DNR provjera
    echo "      \"three_denoise\": {" >> "$VERIFICATION_FILE"
    dnr_response=$(curl -s --digest -u "$USERNAME:$PASSWORD" "http://$ip/cgi-bin/configManager.cgi?action=getConfig&name=VideoColor%5B0%5D%5B0%5D.ThreeDDenoise" 2>&1)
    echo "        \"raw_response\": \"$(echo "$dnr_response" | tr '\n' ' ' | sed 's/"/\\"/g')\"" >> "$VERIFICATION_FILE"
    echo "      }," >> "$VERIFICATION_FILE"
    
    # Encode (FPS, Bitrate, GOP) provjera - samo za kamere s storage optimizacijom
    if [ "$id" = "201" ] || [ "$id" = "202" ] || [ "$id" = "203" ] || [ "$id" = "205" ] || [ "$id" = "215" ]; then
        echo "      \"encode_main_format\": {" >> "$VERIFICATION_FILE"
        
        fps_response=$(curl -s --digest -u "$USERNAME:$PASSWORD" "http://$ip/cgi-bin/configManager.cgi?action=getConfig&name=Encode%5B0%5D.MainFormat%5B0%5D.Video.FPS" 2>&1)
        bitrate_response=$(curl -s --digest -u "$USERNAME:$PASSWORD" "http://$ip/cgi-bin/configManager.cgi?action=getConfig&name=Encode%5B0%5D.MainFormat%5B0%5D.Video.BitRate" 2>&1)
        gop_response=$(curl -s --digest -u "$USERNAME:$PASSWORD" "http://$ip/cgi-bin/configManager.cgi?action=getConfig&name=Encode%5B0%5D.MainFormat%5B0%5D.Video.GOP" 2>&1)
        
        echo "        \"fps_raw\": \"$(echo "$fps_response" | tr '\n' ' ' | sed 's/"/\\"/g')\"," >> "$VERIFICATION_FILE"
        echo "        \"bitrate_raw\": \"$(echo "$bitrate_response" | tr '\n' ' ' | sed 's/"/\\"/g')\"," >> "$VERIFICATION_FILE"
        echo "        \"gop_raw\": \"$(echo "$gop_response" | tr '\n' ' ' | sed 's/"/\\"/g')\"" >> "$VERIFICATION_FILE"
        echo "      }" >> "$VERIFICATION_FILE"
    else
        echo "      \"encode_main_format\": null" >> "$VERIFICATION_FILE"
    fi
    
    echo "    }" >> "$VERIFICATION_FILE"
done

echo "  ]" >> "$VERIFICATION_FILE"
echo "}" >> "$VERIFICATION_FILE"

echo ""
echo "Verifikacijski scan završen!"
echo "Rezultati spremljeni u: $VERIFICATION_FILE"
