#!/bin/bash

# MEDIX Q - Docker Startup Script
# This script provides an easy way to start MEDIX Q with Docker

set -e

echo "╔════════════════════════════════════════╗"
echo "║         MEDIX Q - Docker Setup         ║"
echo "╚════════════════════════════════════════╝"
echo ""

# Check if Docker is installed
if ! command -v docker &> /dev/null; then
    echo "❌ Docker is not installed. Please install Docker first."
    exit 1
fi

# Check if docker-compose is available
if ! command -v docker-compose &> /dev/null; then
    echo "⚠️  docker-compose not found. Trying docker compose..."
    COMPOSE_CMD="docker compose"
else
    COMPOSE_CMD="docker-compose"
fi

echo "Using Docker command: $COMPOSE_CMD"
echo ""

# Parse arguments
MODE=${1:-production}

if [ "$MODE" == "dev" ] || [ "$MODE" == "development" ]; then
    echo "🚀 Starting MEDIX Q in DEVELOPMENT mode..."
    echo "   Hot reload enabled - changes will reflect immediately"
    echo ""
    $COMPOSE_CMD -f docker-compose.dev.yml up
elif [ "$MODE" == "prod" ] || [ "$MODE" == "production" ]; then
    echo "🚀 Starting MEDIX Q in PRODUCTION mode..."
    echo "   Optimized build - running in background"
    echo ""
    $COMPOSE_CMD up -d
    echo ""
    echo "✅ MEDIX Q is running!"
    echo "   Access the application at: http://localhost:3000"
    echo ""
    echo "Useful commands:"
    echo "  - View logs:     $COMPOSE_CMD logs -f"
    echo "  - Stop:          $COMPOSE_CMD down"
    echo "  - Restart:       $COMPOSE_CMD restart"
elif [ "$MODE" == "stop" ] || [ "$MODE" == "down" ]; then
    echo "🛑 Stopping MEDIX Q..."
    $COMPOSE_CMD down
    echo "✅ MEDIX Q stopped"
elif [ "$MODE" == "logs" ]; then
    echo "📋 Viewing MEDIX Q logs..."
    $COMPOSE_CMD logs -f
elif [ "$MODE" == "rebuild" ]; then
    echo "🔨 Rebuilding MEDIX Q..."
    $COMPOSE_CMD down
    $COMPOSE_CMD build --no-cache
    echo "✅ Build complete. Starting application..."
    $COMPOSE_CMD up -d
    echo "   Access the application at: http://localhost:3000"
else
    echo "Usage: ./docker-start.sh [MODE]"
    echo ""
    echo "Modes:"
    echo "  production  - Start in production mode (default)"
    echo "  dev         - Start in development mode with hot reload"
    echo "  stop        - Stop the running containers"
    echo "  logs        - View application logs"
    echo "  rebuild     - Rebuild and restart the application"
    echo ""
    echo "Examples:"
    echo "  ./docker-start.sh               # Production mode"
    echo "  ./docker-start.sh dev           # Development mode"
    echo "  ./docker-start.sh stop          # Stop containers"
    exit 0
fi
