#!/bin/bash

# WAGW SaaS Environment Helper

set -e

echo "⚙️  WAGW SaaS Environment Helper"
echo "================================"

show_help() {
    echo ""
    echo "Usage: env.sh [command]"
    echo ""
    echo "Commands:"
    echo "  generate     Generate new APP_KEY"
    echo "  check        Check environment configuration"
    echo "  backup       Backup current .env"
    echo "  restore      Restore .env from backup"
    echo "  help         Show this help message"
    echo ""
}

case "${1:-check}" in
    generate)
        echo "Generating new APP_KEY..."
        docker compose exec app php artisan key:generate
        echo "✓ APP_KEY generated"
        ;;
    check)
        echo "Checking environment configuration..."
        if [ -f .env ]; then
            echo "✓ .env file exists"
            echo ""
            echo "Current configuration:"
            grep -E "^(APP_|DB_|REDIS_|QUEUE_|MINIO_|GOWA_)" .env | sed 's/^/  /'
        else
            echo "✗ .env file not found"
            echo "Run: cp .env.example .env"
        fi
        ;;
    backup)
        echo "Backing up .env..."
        cp .env .env.backup.$(date +%Y%m%d-%H%M%S)
        echo "✓ .env backed up to .env.backup.$(date +%Y%m%d-%H%M%S)"
        ;;
    restore)
        if [ -z "$2" ]; then
            echo "Error: Please specify backup file"
            echo "Usage: env.sh restore .env.backup.YYYYMMDD-HHMMSS"
            exit 1
        fi
        echo "Restoring .env from $2..."
        cp "$2" .env
        echo "✓ .env restored"
        ;;
    help|--help|-h)
        show_help
        ;;
    *)
        echo "Unknown command: ${1}"
        show_help
        exit 1
        ;;
esac
