#!/bin/bash

# WAGW SaaS Development Helper Scripts

set -e

echo "🚀 WAGW SaaS Development Helper"
echo "================================"

show_help() {
    echo ""
    echo "Usage: dev.sh [command]"
    echo ""
    echo "Commands:"
    echo "  up           Start all Docker services"
    echo "  down         Stop all Docker services"
    echo "  restart      Restart all services"
    echo "  logs         View logs (follow mode)"
    echo "  build        Rebuild containers"
    echo "  install      Install PHP dependencies"
    echo "  migrate      Run database migrations"
    echo "  seed         Run database seeders"
    echo "  test         Run tests"
    echo "  tinker       Open Laravel tinker"
    echo "  clear        Clear all caches"
    echo "  help         Show this help message"
    echo ""
}

case "${1:-help}" in
    up)
        echo "Starting Docker services..."
        docker compose up -d
        echo "✓ Services started"
        ;;
    down)
        echo "Stopping Docker services..."
        docker compose down
        echo "✓ Services stopped"
        ;;
    restart)
        echo "Restarting Docker services..."
        docker compose restart
        echo "✓ Services restarted"
        ;;
    logs)
        echo "Viewing logs (Ctrl+C to exit)..."
        docker compose logs -f
        ;;
    build)
        echo "Rebuilding containers..."
        docker compose build
        echo "✓ Containers rebuilt"
        ;;
    install)
        echo "Installing PHP dependencies..."
        docker compose exec app composer install
        echo "✓ Dependencies installed"
        ;;
    migrate)
        echo "Running database migrations..."
        docker compose exec app php artisan migrate
        echo "✓ Migrations completed"
        ;;
    seed)
        echo "Running database seeders..."
        docker compose exec app php artisan db:seed
        echo "✓ Seeders completed"
        ;;
    test)
        echo "Running tests..."
        docker compose exec app php artisan test
        ;;
    tinker)
        echo "Opening Laravel tinker..."
        docker compose exec app php artisan tinker
        ;;
    clear)
        echo "Clearing caches..."
        docker compose exec app php artisan cache:clear
        docker compose exec app php artisan config:clear
        docker compose exec app php artisan route:clear
        docker compose exec app php artisan view:clear
        echo "✓ Caches cleared"
        ;;
    help|--help|-h)
        show_help
        ;;
    *)
        echo "Unknown command: ${1}"
        show_help
        exit 1
        ;;
esac
