#!/bin/bash
set -e

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

PROJECT_DIR="/var/www/html/moro"
cd $PROJECT_DIR

echo "[$(date)] ==> Pulling latest code..."
git pull --rebase origin develop

echo "[$(date)] ==> Installing composer dependencies..."
composer install --optimize-autoloader --no-dev -d $PROJECT_DIR 2>&1

echo "[$(date)] ==> Running migrations..."
php $PROJECT_DIR/artisan migrate --force

echo "[$(date)] ==> Installing npm dependencies..."
nvm use
npm install

echo "[$(date)] ==> Building frontend assets..."
npm run production-all

echo "[$(date)] ==> Clearing and rebuilding caches..."
php $PROJECT_DIR/artisan config:clear
php $PROJECT_DIR/artisan cache:clear
php $PROJECT_DIR/artisan view:cache
php $PROJECT_DIR/artisan route:cache

echo "[$(date)] ==> Setting permissions..."
chmod -R 775 $PROJECT_DIR/storage/ 2>/dev/null || true
chmod -R 775 $PROJECT_DIR/bootstrap/cache/ 2>/dev/null || true

echo "[$(date)] ==> Restarting queue workers..."
sudo supervisorctl restart moro-dev-queue:*

echo "[$(date)] ==> Reloading PHP-FPM..."
sudo systemctl reload php8.4-fpm

echo "[$(date)] ==> Deploy complete!"
