#!/usr/bin/env bash
set -e

# Use production database for E2E tests instead of creating TiDB Zero instance
export TIDB_HOST="gateway01.us-east-1.prod.aws.tidbcloud.com"
export TIDB_PORT="4000"
export TIDB_USER="466RTTQkGzbRdeB.root"
export TIDB_PASSWORD="TgTcb1EG2ybYl3EX"
export TIDB_DATABASE="nexuscrm"

# Apply system data (seed admin user, etc.)
cd backend
PATH=/tmp/go/bin:$PATH NEXUS_ADMIN_PASSWORD="Admin123!" TIDB_HOST="$TIDB_HOST" TIDB_PORT="$TIDB_PORT" TIDB_USER="$TIDB_USER" TIDB_PASSWORD="$TIDB_PASSWORD" TIDB_DATABASE="$TIDB_DATABASE" go run ./cmd/setup apply

# Build and start backend
PATH=/tmp/go/bin:$PATH go build -o /tmp/nexuscrm-server ./cmd/server/
PORT=43001 nohup /tmp/nexuscrm-server > /tmp/nexuscrm.log 2>&1 &
BACKEND_PID=$!
echo "Backend PID: $BACKEND_PID"

# Wait for backend
for i in $(seq 1 30); do
    if curl -s http://127.0.0.1:43001/health > /dev/null 2>&1; then
        echo "✅ Backend started"
        break
    fi
    if [ $i -eq 30 ]; then
        echo "❌ Backend failed to start"
        cat /tmp/nexuscrm.log
        exit 1
    fi
    sleep 2
done

# Run E2E tests
cd ../tests/e2e-api
export NEXUSCRM_URL="http://127.0.0.1:43001"
export NEXUSCRM_USERNAME="admin@test.com"
export NEXUSCRM_PASSWORD="Admin123!"
python3 runner.py
python3 generate_report.py
