#!/bin/bash

# ZEDFO Backend Deployment Script for cPanel
# This script automates code updates, dependency management, and production optimization.

set -e

echo "---------------------------------------------------"
echo "🚀 ZEDFO: INITIALIZING DEPLOYMENT..."
echo "---------------------------------------------------"

# 1. FETCH LATEST SOURCE
echo "📥 Step 1: Synchronizing with GitHub..."
git fetch origin
git reset --hard origin/main

# 2. DEPENDENCY MANAGEMENT
echo "📦 Step 2: Ensuring local Composer is available..."
if [ ! -f composer.phar ]; then
    echo "📥 Downloading local composer.phar..."
    curl -sS https://getcomposer.org/installer | /usr/local/bin/php
fi

echo "📦 Installing production dependencies..."
/usr/local/bin/php composer.phar install --no-dev --optimize-autoloader --no-interaction --prefer-dist

# 3. ENVIRONMENT INITIALIZATION
if [ ! -f .env ]; then
    echo "📄 Step 3: Provisioning environment from .env.example..."
    cp .env.example .env
    php artisan key:generate --force
    echo "⚠️ NOTE: Please verify your DB details in .env if this is a first-time setup."
else
    echo "📄 Step 3: Synchronizing environment template..."
    cp .env.example .env
fi

# 4. DATABASE ORCHESTRATION
echo "🗄️ Step 4: Synchronizing database schema..."
php artisan migrate --force

# 5. PERFORMANCE OPTIMIZATION
echo "⚡ Step 5: Building production cache..."
php artisan optimize:clear
php artisan optimize
php artisan storage:link

# 6. PERMISSION HARDENING
echo "🔒 Step 6: Hardening file permissions..."
chmod -R 775 storage bootstrap/cache
find storage -type d -exec chmod 775 {} \;
find storage -type f -exec chmod 664 {} \;

echo "---------------------------------------------------"
echo "✅ DEPLOYMENT SUCCESSFUL: ZEDFO IS LIVE!"
echo "---------------------------------------------------"
