#!/usr/bin/env bash
# =============================================================
#  Magostore Marketplace — Temizlik Betiği
# -------------------------------------------------------------
#  Uygulama kök dizininde (artisan dosyasının yanında) çalıştır:
#
#    bash magostore-temizlik.sh          → sadece rapor verir
#    bash magostore-temizlik.sh --apply  → siler
#
#  vendor/ klasörüne DOKUNMAZ — arşivde geldiği için cPanel'de
#  composer install çalıştırmak zorunda kalmıyorsun.
# =============================================================
set -uo pipefail

APPLY=0
[[ "${1:-}" == "--apply" ]] && APPLY=1

if [[ ! -f artisan ]]; then
    echo "HATA: artisan bulunamadı. Bu betiği uygulama kök dizininde çalıştır." >&2
    exit 1
fi

boyut() { du -sh "$1" 2>/dev/null | cut -f1; }
adet()  { find "$1" -type f 2>/dev/null | wc -l | tr -d ' '; }

# hedef:  yol|açıklama|klasörü_koru(0/1)
HEDEFLER=(
  "storage/debugbar|Debug profil dosyaları (tamamı gereksiz)|1"
  "storage/logs|Eski hata günlükleri|1"
  "storage/framework/cache/data|Derlenmiş önbellek|1"
  "storage/framework/views|Derlenmiş blade şablonları|1"
  "storage/framework/sessions|Eski oturumlar|1"
  "storage/app/backup|Eski yedek arşivleri|1"
  "bootstrap/cache|Yapılandırma/route önbelleği|1"
)

echo "=========================================================="
[[ $APPLY -eq 1 ]] && echo " TEMİZLİK UYGULANIYOR" || echo " ÖN İZLEME — hiçbir şey silinmiyor (--apply ile sil)"
echo "=========================================================="
echo

TOPLAM_DOSYA=0

for h in "${HEDEFLER[@]}"; do
    IFS='|' read -r yol aciklama koru <<< "$h"

    if [[ ! -d "$yol" ]]; then
        printf "  --  %-32s (yok)\n" "$yol"
        continue
    fi

    n=$(adet "$yol")
    b=$(boyut "$yol")
    printf "  %s  %-32s %6s dosya  %8s   %s\n" \
        "$([[ $n -gt 0 ]] && echo '>>' || echo '  ')" "$yol" "$n" "$b" "$aciklama"

    TOPLAM_DOSYA=$((TOPLAM_DOSYA + n))

    if [[ $APPLY -eq 1 && $n -gt 0 ]]; then
        # klasörün kendisini koru, içini boşalt; .gitignore'ları bırak
        find "$yol" -mindepth 1 ! -name '.gitignore' -delete 2>/dev/null || true
    fi
done

echo
# .env varsa uyar — yeni sunucuya taşınmamalı
if [[ -f .env ]]; then
    echo "  !!  .env mevcut. Yeni sunucuya bu dosyayı TAŞIMA."
    echo "      env.magostore.example'dan sıfırdan oluştur (eski APP_KEY'i koruyarak)."
    echo
fi

# debugbar paketi kurulu mu
if [[ -d vendor/fruitcake/laravel-debugbar ]] || [[ -d vendor/barryvdh/laravel-debugbar ]]; then
    echo "  !!  Debugbar paketi kurulu. .env içine DEBUGBAR_ENABLED=false ekle,"
    echo "      yoksa storage/debugbar tekrar dolar ve her sayfa yavaşlar."
    echo
fi

echo "----------------------------------------------------------"
if [[ $APPLY -eq 1 ]]; then
    echo " Silindi: $TOPLAM_DOSYA dosya"
    echo
    echo " Sonraki adım:"
    echo "   chmod -R 775 storage bootstrap/cache"
    echo "   php artisan optimize:clear"
else
    echo " Silinecek: $TOPLAM_DOSYA dosya"
    echo
    echo " Uygulamak için:  bash magostore-temizlik.sh --apply"
fi
echo "----------------------------------------------------------"
