#!/bin/bash

# BreakPilot Content Service - Startup Script
# Starts all Content Service components

set -e

echo "
╔════════════════════════════════════════════════════════╗
║  🎓 BreakPilot Content Service - Startup               ║
║  📦 Starting Educational Content Platform...           ║
╚════════════════════════════════════════════════════════╝
"

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

if ! command -v docker-compose &> /dev/null; then
    echo "❌ docker-compose not found. Please install docker-compose first."
    exit 1
fi

# Create network if not exists
if ! docker network inspect breakpilot-pwa-network &> /dev/null; then
    echo "📡 Creating Docker network..."
    docker network create breakpilot-pwa-network
fi

# Start services
echo "🚀 Starting Content Services..."
echo ""

docker-compose \
  -f docker-compose.yml \
  -f docker-compose.content.yml \
  up -d

echo ""
echo "⏳ Waiting for services to be healthy..."
sleep 10

# Check service health
echo ""
echo "🔍 Checking service status..."
echo ""

# Content Service
if curl -f http://localhost:8002/health &> /dev/null; then
    echo "✅ Content Service API - http://localhost:8002"
else
    echo "⚠️  Content Service API - Starting..."
fi

# MinIO
if curl -f http://localhost:9000/minio/health/live &> /dev/null; then
    echo "✅ MinIO Storage - http://localhost:9001 (UI)"
else
    echo "⚠️  MinIO Storage - Starting..."
fi

# H5P Service
if curl -f http://localhost:8003/health &> /dev/null; then
    echo "✅ H5P Service - http://localhost:8003"
else
    echo "⚠️  H5P Service - Starting..."
fi

# Content DB
if docker exec breakpilot-pwa-content-db pg_isready -U breakpilot -d breakpilot_content &> /dev/null; then
    echo "✅ Content Database - localhost:5433"
else
    echo "⚠️  Content Database - Starting..."
fi

echo ""
echo "
╔════════════════════════════════════════════════════════╗
║  ✅ Content Services Started!                          ║
╠════════════════════════════════════════════════════════╣
║                                                        ║
║  📍 Content Service API:  http://localhost:8002/docs   ║
║  📍 MinIO Console:        http://localhost:9001        ║
║  📍 H5P Editor:           http://localhost:8003        ║
║  📍 Content Database:     localhost:5433               ║
║                                                        ║
║  📚 Setup Guide: CONTENT_SERVICE_SETUP.md              ║
║                                                        ║
╚════════════════════════════════════════════════════════╝
"

echo "💡 Quick Commands:"
echo ""
echo "   View Logs:     docker-compose -f docker-compose.content.yml logs -f"
echo "   Stop Services: docker-compose -f docker-compose.content.yml down"
echo "   Restart:       docker-compose -f docker-compose.content.yml restart"
echo ""

echo "🎉 Ready to create educational content!"
echo ""
