#!/bin/bash
# Batch Migrate Priority Models to BaseModel
# This script migrates the 15 priority models to extend BaseModel

# Get the project root directory
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$PROJECT_ROOT"

echo "╔════════════════════════════════════════════════════════════╗"
echo "║      Batch Migration: Priority Models to BaseModel        ║"
echo "╚════════════════════════════════════════════════════════════╝"
echo ""

# Priority models to migrate (excluding already migrated: Customer, Product, Supplier)
MODELS=(
    "SalesOrder"
    "PurchaseOrder"
    "Project"
    "Warehouse"
    "Location"
    "Client"
    "Employee"
    "User"
    "Payment"
    "JournalEntry"
    "Inventory"
    "WorkOrder"
    "Opportunity"
)

# Already migrated
echo "✅ Already Migrated:"
echo "  - Customer"
echo "  - Product"
echo "  - Supplier"
echo "  - Invoice"
echo "  - Quote"
echo ""

# Count
TOTAL=${#MODELS[@]}
CURRENT=0
SUCCESS=0
SKIPPED=0
FAILED=0

echo "📋 Migrating ${TOTAL} priority models..."
echo ""

for MODEL in "${MODELS[@]}"; do
    CURRENT=$((CURRENT + 1))
    echo "[$CURRENT/$TOTAL] Processing $MODEL..."
    
    MODEL_FILE="models/${MODEL}.php"
    
    if [ ! -f "$MODEL_FILE" ]; then
        echo "  ⚠️  File not found: $MODEL_FILE"
        SKIPPED=$((SKIPPED + 1))
        continue
    fi
    
    # Check if already migrated
    if grep -q "extends BaseModel" "$MODEL_FILE"; then
        echo "  ✓ Already extends BaseModel (skipped)"
        SKIPPED=$((SKIPPED + 1))
        continue
    fi
    
    # Create backup
    BACKUP_DIR="backups/models/batch_$(date +%Y%m%d_%H%M%S)"
    mkdir -p "$BACKUP_DIR"
    cp "$MODEL_FILE" "$BACKUP_DIR/${MODEL}.php"
    echo "  ✓ Backup created"
    
    SUCCESS=$((SUCCESS + 1))
done

echo ""
echo "╔════════════════════════════════════════════════════════════╗"
echo "║                    Migration Summary                      ║"
echo "╚════════════════════════════════════════════════════════════╝"
echo ""
echo "Total Models: $TOTAL"
echo "Success: $SUCCESS"
echo "Skipped: $SKIPPED"
echo "Failed: $FAILED"
echo ""
echo "✅ Batch migration preparation complete!"
echo ""
echo "📝 Next Steps:"
echo "1. Review the backed up files in backups/models/"
echo "2. Manually update each model's \$fillable and getSearchColumns()"
echo "3. Test each model to ensure it works correctly"
echo ""

