#!/usr/bin/env bash
#
# Curățare locală înainte de upload pe server nou (sau înainte de deploy).
# Nu șterge codul aplicației, vendor, .env sau uploads utilizatori.
#
# Usage:
#   ./scripts/clean-for-server-upload.sh
#   ./scripts/clean-for-server-upload.sh --with-dev-deps   # și composer fără --no-dev (doar local)
#

set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "${ROOT}"

WITH_DEV_DEPS=false
[[ "${1:-}" == "--with-dev-deps" ]] && WITH_DEV_DEPS=true

echo "==> Curățare cache Laravel..."
php artisan optimize:clear 2>/dev/null || true

echo "==> Golire storage temporar..."
find storage/framework/views -mindepth 1 -maxdepth 1 ! -name '.gitignore' -exec rm -rf {} + 2>/dev/null || true
find storage/framework/cache/data -mindepth 1 -maxdepth 1 ! -name '.gitignore' -exec rm -rf {} + 2>/dev/null || true
find storage/framework/sessions -mindepth 1 -maxdepth 1 ! -name '.gitignore' -exec rm -rf {} + 2>/dev/null || true
find bootstrap/cache -name '*.php' ! -name '.gitignore' -delete 2>/dev/null || true
: > storage/logs/laravel.log 2>/dev/null || true
: > storage/logs/scheduler.log 2>/dev/null || true

echo "==> Eliminare foldere/fișiere nefolosite..."
rm -rf public/uploadsold 2>/dev/null || true
rm -f public/hot 2>/dev/null || true
rm -f .phpunit.result.cache 2>/dev/null || true

if [[ -f database.sql ]]; then
  mkdir -p deploy/backups/archive
  mv -f database.sql "deploy/backups/archive/database.sql.$(date +%Y%m%d-%H%M%S)"
  echo "    database.sql mutat în deploy/backups/archive/"
fi

if [[ -d node_modules ]]; then
  echo "    (node_modules prezent — nu se șterge; nu e necesar pe server dacă asset-urile sunt deja în public/)"
fi

if command -v composer >/dev/null 2>&1; then
  echo "==> Composer install pentru producție..."
  if [[ "${WITH_DEV_DEPS}" == "true" ]]; then
    composer install --prefer-dist --optimize-autoloader --no-interaction
  else
    composer install --no-dev --prefer-dist --optimize-autoloader --no-interaction
  fi
fi

echo ""
echo "=== Gata. Dimensiuni aproximative ==="
du -sh vendor public storage deploy 2>/dev/null | sed 's/^/  /'
echo ""
echo "Pe serverul nou: copiați .env, rulați php artisan migrate --force, storage:link, cache."
echo "Vezi docs/SERVER-UPLOAD.md"
