#!/bin/bash

echo "=== Final Login Test ==="
echo ""

# Test 1: Keycloak direct with frontend client
echo "1. Testing Keycloak direct login with frontend client..."
KC_RESPONSE=$(curl -s -w "\n%{http_code}" -X POST "http://localhost:8080/realms/b2b-flight-platform/protocol/openid-connect/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "client_id=b2b-flight-frontend" \
  -d "grant_type=password" \
  -d "username=superadmin" \
  -d "password=SuperAdmin123!")

HTTP_CODE=$(echo "$KC_RESPONSE" | tail -n1)
BODY=$(echo "$KC_RESPONSE" | head -n-1)

if [ "$HTTP_CODE" = "200" ]; then
  echo "✅ Keycloak login successful (HTTP $HTTP_CODE)"
  ACCESS_TOKEN=$(echo "$BODY" | jq -r '.access_token')
  echo "Got access token: ${ACCESS_TOKEN:0:50}..."
else
  echo "❌ Keycloak login failed (HTTP $HTTP_CODE)"
  echo "$BODY" | jq '.'
  exit 1
fi

echo ""
echo "2. Testing backend API login..."
API_RESPONSE=$(curl -s -w "\n%{http_code}" -X POST "http://localhost:8081/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"username":"superadmin","password":"SuperAdmin123!"}')

HTTP_CODE=$(echo "$API_RESPONSE" | tail -n1)
BODY=$(echo "$API_RESPONSE" | head -n-1)

if [ "$HTTP_CODE" = "200" ]; then
  echo "✅ Backend API login successful (HTTP $HTTP_CODE)"
  echo "$BODY" | jq '.'
  echo ""
  echo "========================================="
  echo "✅ ALL TESTS PASSED!"
  echo "========================================="
  echo ""
  echo "You can now login at http://localhost:4200"
  echo "Username: superadmin"
  echo "Password: SuperAdmin123!"
else
  echo "❌ Backend API login failed (HTTP $HTTP_CODE)"
  echo "$BODY" | jq '.'
  echo ""
  echo "Checking backend logs..."
  docker logs b2b-flight-app 2>&1 | grep -A 3 "Login request" | tail -10
fi
