#!/bin/bash

# Comments Press Zone - Version Bump & Deploy Script
# Usage: ./bump.sh <version> [-m "commit message"]

# Default values
COMMIT_MSG="chore: bump version"
NEW_VERSION=""

# Parse arguments
while [[ "$#" -gt 0 ]]; do
    case $1 in
        -m|--message) COMMIT_MSG="$2"; shift ;;
        *) NEW_VERSION="$1" ;;
    esac
    shift
done

if [ -z "$NEW_VERSION" ]; then
    echo "❌ Error: Version number is required."
    echo "Usage: $0 <version> [-m \"message\"]"
    exit 1
fi

echo "🚀 Starting deployment process for version $NEW_VERSION..."

# 1. Update comments-press-zone.php (Plugin Header)
echo "📝 Updating plugin header..."
sed -i "s/Version:           .*/Version:           $NEW_VERSION/" comments-press-zone.php

# 2. Update comments-press-zone.php (Constant)
echo "📝 Updating version constant..."
sed -i "s/define('PRESSZONE_COMMENTS_VERSION', '.*');/define('PRESSZONE_COMMENTS_VERSION', '$NEW_VERSION');/" comments-press-zone.php

# 3. Update package.json
echo "📝 Updating root package.json..."
# Use a more specific pattern to only match the first "version" entry
sed -i "0,/\"version\": \".*\"/s//\"version\": \"$NEW_VERSION\"/" package.json

# 4. Update admin/package.json
echo "📝 Updating admin package.json..."
sed -i "0,/\"version\": \".*\"/s//\"version\": \"$NEW_VERSION\"/" admin/package.json

# 5. Rebuild Frontend Assets
echo "🎨 Rebuilding Frontend SCSS..."
npm run build:css

# 6. Rebuild Admin Assets
echo "⚙️ Rebuilding Admin SPA..."
cd admin
npm run build
cd ..

# 7. Git Operations
echo "📦 Committing and pushing to git..."
git add .

# Check if there are any changes to commit
if git diff --cached --quiet; then
    echo "⚠️ No changes detected to commit (version might be the same)."
else
    git commit -m "$COMMIT_MSG to $NEW_VERSION"
    git push origin master
    echo "✅ Successfully deployed version $NEW_VERSION"
fi

echo "🏁 Done!"
