#!/bin/bash

echo "=== Testing Frontend Login Flow ==="
echo ""

# Test 1: Check if frontend is accessible
echo "1. Checking if frontend is accessible..."
FRONTEND_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:4200)
if [ "$FRONTEND_STATUS" = "200" ]; then
    echo "   ✓ Frontend is accessible (HTTP $FRONTEND_STATUS)"
else
    echo "   ✗ Frontend returned HTTP $FRONTEND_STATUS"
    exit 1
fi
echo ""

# Test 2: Check if backend API is accessible
echo "2. Checking if backend API is accessible..."
BACKEND_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8081/actuator/health)
if [ "$BACKEND_STATUS" = "200" ]; then
    echo "   ✓ Backend API is accessible (HTTP $BACKEND_STATUS)"
else
    echo "   ✗ Backend API returned HTTP $BACKEND_STATUS"
    exit 1
fi
echo ""

# Test 3: Test login API endpoint
echo "3. Testing login API endpoint..."
LOGIN_RESPONSE=$(curl -s -X POST "http://localhost:8081/api/v1/auth/login" \
    -H "Content-Type: application/json" \
    -d '{"username":"superadmin","password":"SuperAdmin123!"}')

echo "   Response:"
echo "$LOGIN_RESPONSE" | jq '.'
echo ""

# Check if login was successful
if echo "$LOGIN_RESPONSE" | jq -e '.userInfo.username' > /dev/null 2>&1; then
    USERNAME=$(echo "$LOGIN_RESPONSE" | jq -r '.userInfo.username')
    ROLE=$(echo "$LOGIN_RESPONSE" | jq -r '.userInfo.roles[0]')
    MFA_REQUIRED=$(echo "$LOGIN_RESPONSE" | jq -r '.mfaRequired')
    
    echo "   ✓ Login successful!"
    echo "   - Username: $USERNAME"
    echo "   - Role: $ROLE"
    echo "   - MFA Required: $MFA_REQUIRED"
else
    echo "   ✗ Login failed"
    exit 1
fi
echo ""

echo "=== Summary ==="
echo "✓ Frontend is running on http://localhost:4200"
echo "✓ Backend API is running on http://localhost:8081"
echo "✓ Login endpoint is working"
echo ""
echo "Note: MFA is required for SUPER_ADMIN users."
echo "The frontend will prompt you to set up MFA on first login."
echo ""
echo "You can now open http://localhost:4200 in your browser and log in with:"
echo "  Username: superadmin"
echo "  Password: SuperAdmin123!"
