#!/bin/bash

# Skrypt testujący endpointy API
# Użycie: ./test-api.sh [BASE_URL]
# Przykład: ./test-api.sh https://api.twoja-domena.pl

BASE_URL=${1:-"http://localhost:3001"}
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m' # No Color

echo "========================================="
echo "Testing eSesja Analytics API v2.0"
echo "Base URL: $BASE_URL"
echo "========================================="
echo ""

# Helper function
test_endpoint() {
    local method=$1
    local endpoint=$2
    local description=$3
    
    echo -n "Testing $method $endpoint ... "
    
    response=$(curl -s -o /dev/null -w "%{http_code}" -X $method "$BASE_URL$endpoint")
    
    if [ "$response" = "200" ] || [ "$response" = "201" ]; then
        echo -e "${GREEN}✓ PASSED${NC} (HTTP $response)"
    else
        echo -e "${RED}✗ FAILED${NC} (HTTP $response)"
    fi
}

# Health check
echo "=== Health Check ==="
test_endpoint "GET" "/health" "Health check"
echo ""

# API Root
echo "=== API Root ==="
test_endpoint "GET" "/api" "API root"
echo ""

# Utils
echo "=== Utils Endpoints ==="
test_endpoint "GET" "/api/utils/ugrupowania" "Lista ugrupowań"
test_endpoint "GET" "/api/utils/organy" "Lista organów"
test_endpoint "GET" "/api/utils/kadencje" "Lista kadencji"
test_endpoint "GET" "/api/utils/stats" "Statystyki systemu"
echo ""

# Radni
echo "=== Radni Endpoints ==="
test_endpoint "GET" "/api/radni" "Lista radnych"
test_endpoint "GET" "/api/radni/1" "Profil radnego (ID: 1)"
test_endpoint "GET" "/api/radni/1/glosowania" "Głosowania radnego"
test_endpoint "GET" "/api/radni/1/profil-glosowania" "Profil głosowania"
test_endpoint "GET" "/api/radni/1/frekwencja" "Frekwencja radnego"
test_endpoint "GET" "/api/radni/1/koalicje" "Koalicje radnego"
echo ""

# Głosowania
echo "=== Głosowania Endpoints ==="
test_endpoint "GET" "/api/glosowania" "Lista głosowań"
test_endpoint "GET" "/api/glosowania/1" "Szczegóły głosowania (ID: 1)"
test_endpoint "GET" "/api/glosowania/1/glosy" "Rozkład głosów"
test_endpoint "GET" "/api/glosowania/1/zalaczniki" "Załączniki"
echo ""

# Statystyki
echo "=== Statystyki Endpoints ==="
test_endpoint "GET" "/api/statystyki/dashboard" "Dashboard"
test_endpoint "GET" "/api/statystyki/ranking-frekwencji" "Ranking frekwencji"
test_endpoint "GET" "/api/statystyki/ranking-buntownikow" "Ranking buntowników"
test_endpoint "GET" "/api/statystyki/najbardziej-kontrowersyjne" "Najbardziej kontrowersyjne"
test_endpoint "GET" "/api/statystyki/aktywnosc-organow" "Aktywność organów"
echo ""

# Posiedzenia
echo "=== Posiedzenia Endpoints ==="
test_endpoint "GET" "/api/posiedzenia" "Lista posiedzeń"
test_endpoint "GET" "/api/posiedzenia/1" "Szczegóły posiedzenia (ID: 1)"
test_endpoint "GET" "/api/posiedzenia/1/punkty" "Punkty porządku"
test_endpoint "GET" "/api/posiedzenia/1/obecnosci" "Obecności"
echo ""

echo "========================================="
echo "Testing completed!"
echo "========================================="
