#!/usr/bin/env bash
cd ~/www/rafgezgini.com/refgezgini || exit 1
echo "=================================================="
echo " MARKET FOTOĞRAF 500 - CANLI KÖK NEDEN YAKALAMA"
echo "=================================================="
echo
echo "=== 1) PROJE ==="
pwd
php -v | head -n 1
php artisan --version
echo
echo "=== 2) STORAGE YOLLARI ==="
php artisan tinker --execute="
echo 'storage_path='.storage_path().PHP_EOL;
echo 'local_root='.config('filesystems.disks.local.root').PHP_EOL;
"
echo
echo "=== 3) DISK / İZİN ==="
df -h .
df -i .
LOCAL_ROOT=$(php artisan tinker --execute="echo config('filesystems.disks.local.root');" 2>/dev/null | tail -n 1)
echo "LOCAL_ROOT=$LOCAL_ROOT"
if [ -n "$LOCAL_ROOT" ]; then
    ls -ld "$LOCAL_ROOT" 2>/dev/null || true
    find "$LOCAL_ROOT" -maxdepth 3 -type d -name "gecici-marketler" -o -path "*gecici-marketler*" 2>/dev/null | head -n 30
fi
echo
echo "=== 4) GERÇEK YAZMA TESTİ ==="
php artisan tinker --execute="
try {
    \$path = 'gecici-marketler/test/'.now()->format('Y-m-d_His').'.txt';
    \$ok = Storage::disk('local')->put(\$path, 'rafgezgini-test');
    echo 'PUT_RESULT='.(\$ok ? 'TRUE' : 'FALSE').PHP_EOL;
    echo 'EXISTS='.(Storage::disk('local')->exists(\$path) ? 'TRUE' : 'FALSE').PHP_EOL;
    if (\$ok) {
        Storage::disk('local')->delete(\$path);
    }
} catch (Throwable \$e) {
    echo 'PUT_EXCEPTION='.get_class(\$e).PHP_EOL;
    echo 'PUT_MESSAGE='.\$e->getMessage().PHP_EOL;
}
"
echo
echo "=== 5) FOTOĞRAF TABLO ŞEMASI ==="
php artisan tinker --execute="
try {
    foreach (Schema::getColumnListing('market_sube_fotograflari') as \$c) {
        echo \$c.PHP_EOL;
    }
} catch (Throwable \$e) {
    echo 'SCHEMA_HATA='.\$e->getMessage().PHP_EOL;
}
"
echo
echo "=== 6) MARKET CONTROLLER FOTOĞRAF KODU ==="
grep -n -A120 -B20 "function resimEkle" app/Http/Controllers/Api/MarketController.php 2>/dev/null || true
echo
echo "=== 7) PHP UPLOAD LİMİTLERİ ==="
php -i | grep -E "upload_max_filesize|post_max_size|max_file_uploads|memory_limit|max_execution_time"
echo
echo "=== 8) LARAVEL LOG YEDEK / TEMİZLİK ==="
LOG="storage/logs/laravel.log"
if [ -f "$LOG" ]; then
    cp "$LOG" "storage/logs/laravel-before-market-photo-$(date +%Y%m%d-%H%M%S).log"
    : > "$LOG"
else
    touch "$LOG"
fi
echo
echo "=================================================="
echo " ŞİMDİ TELEFONDAN:"
echo " 1 FOTOĞRAF SEÇ"
echo " MARKETİ KAYDET"
echo " HATA GELENE KADAR BEKLE"
echo " 90 SANİYE LOG İZLENECEK"
echo "=================================================="
echo
timeout 90 tail -n 0 -F "$LOG" 2>/dev/null \
| grep --line-buffered -iE \
"market|gecici|resim|foto|storage|flysystem|write|permission|mime|upload|queryexception|sqlstate|exception|error|warning|failed|413|422|500"
echo
echo
echo "=================================================="
echo " 9) SON 500 LARAVEL LOG"
echo "=================================================="
tail -n 500 "$LOG"
echo
echo "=================================================="
echo " 10) SON OLUŞAN MARKET FOTOĞRAF KAYITLARI"
echo "=================================================="
php artisan tinker --execute="
try {
    DB::table('market_sube_fotograflari')
        ->orderByDesc('id')
        ->limit(10)
        ->get()
        ->each(function (\$r) {
            echo json_encode((array) \$r, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES).PHP_EOL;
        });
} catch (Throwable \$e) {
    echo 'DB_HATA='.\$e->getMessage().PHP_EOL;
}
"
echo
echo "=================================================="
echo " TEST BİTTİ"
echo "=================================================="
