#!/bin/bash

echo "🧪 Testing Dashboard SQL Queries"
echo "=================================="
echo ""

# Test each query that's in the dashboard
queries=(
  "Races Today:SELECT COUNT(*) as value FROM races WHERE \"startTime\"::date = CURRENT_DATE"
  "Meetings Today:SELECT COUNT(*) as value FROM meetings WHERE date = CURRENT_DATE"
  "Last Update:SELECT EXTRACT(EPOCH FROM (NOW() - MAX(\"updatedAt\"))) / 60 as minutes FROM races WHERE \"startTime\"::date = CURRENT_DATE"
  "Next Race:SELECT EXTRACT(EPOCH FROM MIN(\"startTime\")) * 1000 as time FROM races WHERE \"startTime\"::date = CURRENT_DATE AND \"startTime\" > NOW()"
  "Failed Jobs:SELECT COUNT(*) as value FROM job_runs WHERE status = 'failed' AND \"startedAt\" > NOW() - INTERVAL '1 hour'"
  "Last Success:SELECT EXTRACT(EPOCH FROM MAX(\"startedAt\")) * 1000 as time FROM job_runs WHERE status = 'success'"
)

for query_info in "${queries[@]}"; do
  IFS=':' read -r label query <<< "$query_info"
  echo "📊 $label"

  result=$(docker compose exec -T postgres psql -U racing -d racing_db -t -c "$query" 2>&1)
  exit_code=$?

  if [ $exit_code -eq 0 ]; then
    echo "   ✅ Query succeeded: $result"
  else
    echo "   ❌ Query failed!"
    echo "   Error: $result"
  fi
  echo ""
done

echo "=================================="
echo "✅ Query Testing Complete"
echo ""
echo "If all queries succeeded, the dashboard should display data."
echo "Try refreshing the Grafana page or checking browser console for errors."
