#!/bin/bash
#
# Stop Local Development Environment
#
# Stops all services started by start-local-dev-with-email.sh

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
cd "$PROJECT_ROOT"

# Colors
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m'

echo "============================================"
echo "Stopping Local Development Environment"
echo "============================================"
echo ""

# Stop Mailpit
if [ -f storage/mailpit.pid ]; then
    MAILPIT_PID=$(cat storage/mailpit.pid)
    if kill -0 $MAILPIT_PID 2>/dev/null; then
        kill $MAILPIT_PID
        echo -e "${GREEN}✓ Stopped Mailpit (PID: $MAILPIT_PID)${NC}"
    fi
    rm storage/mailpit.pid
else
    # Fallback: kill by process name
    pkill -f mailpit && echo -e "${GREEN}✓ Stopped Mailpit${NC}" || echo -e "ℹ Mailpit not running"
fi

# Stop Laravel server
if [ -f storage/laravel-serve.pid ]; then
    LARAVEL_PID=$(cat storage/laravel-serve.pid)
    if kill -0 $LARAVEL_PID 2>/dev/null; then
        kill $LARAVEL_PID
        echo -e "${GREEN}✓ Stopped Laravel server (PID: $LARAVEL_PID)${NC}"
    fi
    rm storage/laravel-serve.pid
else
    # Fallback: kill php artisan serve
    pkill -f "artisan serve" && echo -e "${GREEN}✓ Stopped Laravel server${NC}" || echo -e "ℹ Laravel server not running"
fi

# Stop Queue Worker
if [ -f storage/queue-worker.pid ]; then
    QUEUE_PID=$(cat storage/queue-worker.pid)
    if kill -0 $QUEUE_PID 2>/dev/null; then
        kill $QUEUE_PID
        echo -e "${GREEN}✓ Stopped Queue Worker (PID: $QUEUE_PID)${NC}"
    fi
    rm storage/queue-worker.pid
else
    # Fallback: kill queue:work
    pkill -f "queue:work" && echo -e "${GREEN}✓ Stopped Queue Worker${NC}" || echo -e "ℹ Queue Worker not running"
fi

# Restore original .env if backup exists
LATEST_BACKUP=$(ls -t .env.backup-* 2>/dev/null | head -1)
if [ -n "$LATEST_BACKUP" ]; then
    echo ""
    echo -e "Restore original .env from backup?"
    echo -e "Latest backup: ${LATEST_BACKUP}"
    read -p "Restore? (y/N): " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        cp "$LATEST_BACKUP" .env
        echo -e "${GREEN}✓ Restored .env from backup${NC}"
    fi
fi

echo ""
echo "============================================"
echo -e "${GREEN}All services stopped${NC}"
echo "============================================"
echo ""
