#!/bin/bash

# E2E Test Server Startup Script
# Sets up SQLite database and starts Laravel server for E2E testing

echo "🔧 Setting up E2E test environment..."

# Set environment variables for testing
export DB_CONNECTION=sqlite
export DB_DATABASE=database/database.sqlite
export CACHE_DRIVER=database

# Create SQLite database if it doesn't exist
if [ ! -f database/database.sqlite ]; then
    echo "📦 Creating SQLite database..."
    touch database/database.sqlite
fi

# Run migrations to set up the database structure
echo "🗄️ Running database migrations..."
php artisan migrate:fresh --force --env=testing

# Clear configuration cache
echo "🧹 Clearing cache..."
php artisan config:clear
php artisan route:clear
php artisan view:clear

# Seed the database with test data
echo "🌱 Seeding test data..."
php artisan db:seed --class=Database\\Seeders\\E2ETestSeeder --env=testing

echo "🚀 Starting Laravel server for E2E testing..."
echo "📍 URL: http://127.0.0.1:8080"
echo "🛑 Press Ctrl+C to stop the server"

# Start the server with proper environment
DB_CONNECTION=sqlite DB_DATABASE=database/database.sqlite CACHE_DRIVER=database php artisan serve --host=127.0.0.1 --port=8080
