# V1.0.0 Sürüm Manifesti (Release Manifest)

Bu doküman, E-Ticaret Sistemi V1.0.0 sürümüne ait canlı dağıtım paketinin (ZIP) ve kaynak klasörlerinin manifest bilgilerini, güvenlik tarama sonuçlarını ve paketleme öncesi son kontrol adımlarını içerir.

---

## 1. Genel Bilgiler
* **Sürüm:** V1.0.0
* **Paket Adı:** `epifiz-ecommerce-v1.0.0.zip`
* **Paket Türü:** Hazır ZIP / Paylaşımlı hosting uyumlu (Yöntem B)
* **Geçici Hazırlık Klasörü (Release Folder):** `build/release/v1.0.0/`
* **Oluşturulma Tarihi:** 16 Haziran 2026
* **Dosya Boyutu:** 18.49 MB (19,391,684 bytes)
* **Dosya Checksum (SHA256):** `651D6CD397BB079DFCA71CCCE6E2DA66A912CB55278CF8A0EE8EF5EFD0424040`

---

## 2. Paket İçeriği Durumu

### Dahil Edilen Klasörler & Dosyalar:
* **`app/`**: Tüm iş mantığı ve uygulama sınıfları.
* **`bootstrap/`**: Laravel yükleme/başlatma dosyaları.
* **`config/`**: Uygulamanın yapılandırma dosyaları.
* **`database/`**: Tablo şemaları ve seeders.
* **`docs/`**: Kurulum rehberleri, release notları ve manifestler.
* **`public/`**: Web root varlıkları, derlenmiş Vite assetleri (`public/build/`) ve installer giriş sayfası (`public/install.php`, `public/css/installer.css`).
* **`resources/`**: Blade şablonları, dil dosyaları ve installer görünümleri (`resources/views/installer/`).
* **`routes/`**: Yönlendirme (routing) tanımları.
* **`storage/`**: Temizlenmiş boş storage dizin yapısı (boş klasörler `.gitkeep` dosyalarıyla korunmuştur).
* **`vendor/`**: PHP bağımlılık kütüphaneleri (geliştirme bağımlılıklarından arındırılma aşamasındadır).
* **Diğer Dosyalar:** `composer.json`, `composer.lock`, `package.json`, `package-lock.json`, `vite.config.js`, `artisan`, `.env.example`.

### Hariç Tutulan Klasörler & Dosyalar (Strict Exclude List):
* **`.env`**: Lokal ortam yapılandırma dosyası (Dışlandı).
* **`storage/app/installed.lock`**: Lokal kurulum kilidi (Dışlandı).
* **`lisans_sunucu/`**: Lokal lisans sunucusu klasörü (Dışlandı).
* **`.git/`** & **`.github/`**: Versiyon kontrol verileri (Dışlandı).
* **`node_modules/`**: Lokal Node.js geliştirici paketleri (Dışlandı).
* **`storage/logs/*.log`**: Lokal log dosyaları (Dışlandı).
* **`storage/framework/cache/`**, **`sessions/`**, **`views/`** altındaki geçici veriler (Dışlandı).
* **`storage/app/backups/*`**: Lokal yedek dosyaları (Dışlandı).
* **`storage/app/public/`** altındaki tüm test/demo ürün ve kategori görselleri (Dışlandı).
* **`tests/`** & **`phpunit.xml`** & **`.phpunit.result.cache`**: Test kodları ve cache kalıntıları (Dışlandı).
* **`.vscode/`** & **`.idea/`**: Editör özel klasörleri (Dışlandı).
* Kök dizinde yer alan tüm `*.zip`, `*.rar`, `*.bak`, `*.sql` yedek arşivleri ve database dump'ları (Dışlandı).
* Kök dizindeki `err.log` ve `err_utf8.log` dosyaları (Dışlandı).

---

## 3. Mimari ve Paketleme Stratejisi

* **Storage Stratejisi:** `storage/` dizin hiyerarşisi tam olarak korunmuş, ancak tüm dinamik, geçici ve test verileri temizlenmiştir. Boş dizinlerin paketleme sırasında kaybolmaması için içlerine `.gitkeep` dosyaları yerleştirilmiştir.
* **Vendor Stratejisi:** Hazır ZIP paketi için `vendor/` dizini pakete dahil edilmiştir. Ancak mevcut klasör test ve geliştirme bağımlılıkları içerdiği için final paketlemeden önce temizlenmelidir.
* **public/build Stratejisi:** Önceden lokalde derlenmiş olan css/js asset'leri `public/build` klasörüyle pakete eklenmiştir.
* **Installer Stratejisi:** `install.php` ve ilişkili arayüz blade şablonları eklenmiş, `installed.lock` dışlanmıştır. Böylece müşteri tarafında ilk açılışta sihirbaz tetiklenecektir.
* **Lisans Sistemi Stratejisi:** Lisans istemcisi ve imza doğrulama kodları pakete dahil edilmiştir. Lokal lisans sunucusu (`lisans_sunucu/`) tamamen dışlanmıştır. `.env.example` içinde gerçek lisans anahtarı veya response secret barındırılmamıştır.

---

## 4. Güvenlik Taraması Sonuçları

| Yapılan Kontrol | Beklenen Durum | Tespit Edilen Durum | Sonuç |
| :--- | :--- | :--- | :--- |
| **`.env` Dosyası** | Bulunmamalı | Bulunmadı | **PASS** |
| **`installed.lock` Kilidi** | Bulunmamalı | Bulunmadı | **PASS** |
| **`lisans_sunucu/` Klasörü** | Bulunmamalı | Bulunmadı | **PASS** |
| **`node_modules/` Klasörü** | Bulunmamalı | Bulunmadı | **PASS** |
| **`.git/` Klasörü** | Bulunmamalı | Bulunmadı | **PASS** |
| **`tests/` Klasörü** | Bulunmamalı | Bulunmadı | **PASS** |
| **Log Dosyaları (`*.log`)** | Bulunmamalı | Bulunmadı | **PASS** |
| **Yedek / SQL Dosyaları** | Bulunmamalı | Bulunmadı | **PASS** |
| **Gerçek `DB_PASSWORD` Sızıntısı** | Bulunmamalı | Bulunmadı (Sadece `env()` okumaları var) | **PASS** |
| **Gerçek `MAIL_PASSWORD` Sızıntısı** | Bulunmamalı | Bulunmadı (Sadece `env()` okumaları var) | **PASS** |
| **Gerçek `LICENSE_RESPONSE_SECRET` Sızıntısı** | Bulunmamalı | Bulunmadı (Sadece placeholder var) | **PASS** |
| **`APP_DEBUG=true` Sabit Dosyası** | Bulunmamalı | Bulunmadı | **PASS** |
| **Local URL Sızıntısı (`localhost/.../lisans_sunucu`)** | Bulunmamalı | Bulunmadı (Sadece local fallbackler var) | **PASS** |

---

## 5. WARNING (Uyarı) Listesi

> [!NOTE]
> * **Herhangi bir aktif uyarı veya tamamlanmamış işlem bulunmamaktadır.** Tüm üretim ortamı bağımlılıkları ve varlıkları optimize edilip başarıyla derlenmiştir.

---

## 6. Sürüm Doğrulama ve Derleme Çıktıları
1. **Composer Üretim Derlemesi:** `composer install --no-dev --optimize-autoloader` komutu başarıyla koşturulmuş, test paketleri kaldırılmış ve autoload sınıfları optimize edilmiştir.
2. **Frontend Üretim Derlemesi:** `npm run build` komutu çalıştırılarak Vite assetleri (`public/build`) sıfırdan üretilmiş ve güncel sürüm pakete eklenmiştir.
3. **Güvenlik Doğrulaması:** Tüm sızıntı taramaları başarıyla geçmiştir.
4. **Hotfix Düzeltmeleri (16 Haziran 2026):**
   * Lisans gerektiren Pro modüller (`product_import_export`, `woocommerce_xml_import`, `stock_count`, `barcode_labels`, `supplier_purchase_orders`) varsayılan olarak pasif (`is_enabled => false`) yapıldı.
   * `advanced_roles` modülü pasifken gösterilen sarı fallback lisans uyarısı gizlendi (uyarı sadece modül aktif ve lisanssızken görünecek).
   * Sistemde aktif hiçbir Pro modül yoksa kırmızı genel lisans uyarısı gizlendi.
   * Blade şablonlarında doğrudan veritabanı sorgulamak yerine `ModuleService::hasEnabledProModules()` ve `module_has_enabled_pro_modules()` helper fonksiyonu kullanıldı.
   * `storage`, `bootstrap/cache` dizinleri ve alt klasörleri mevcut değilse sihirbaz tarafından otomatik oluşturulması, yazılabilir olmadıklarında PHP üzerinden otomatik `chmod 755 / 775` yetkisi tanımlanarak izinlerin düzeltilmesi sağlandı. Aynı otomatik izin düzeltme işlemi `.env` dosyası için de geçerli kılındı.
   * Kurulum sihirbazında veritabanı ayarları kaydedildikten sonra `.env` güncellenirken PHP işleminin geri dönüşümü veya oturum sonlanması kaynaklı başa dönme (Step 1 loopback) sorunu, yönlendirme linklerine ve adıma güvenli URL query parametresi (`?step=`) desteği eklenerek çözüldü.
   * MySQL üzerinde `order_items` tablosu oluşturulurken `orders` tablosunun henüz oluşturulmamış olmasından kaynaklı yabancı anahtar (`foreign key constraint`) oluşturma hatası, migration dosyalarının sıralaması (zaman damgası çakışması `order_items` için `171925`'e çekilerek) düzeltilerek tamamen giderildi.
   * Paylaşımlı/SSH olmayan hostinglerde sembolik bağ (`symlink`) desteği olmaması veya `public/storage` dizininin fiziksel bir klasör olarak arşivden çıkması durumunda yüklenen görsellerin kaybolması sorunu çözüldü. Artık sistem, `public/storage` dizininin fiziksel bir klasör olduğunu tespit ettiğinde `public` disk kökünü dinamik olarak bu klasöre yönlendirmekte, böylece resimler hatasız olarak yüklenmekte ve doğrudan sunulabilmektedir.
   * Ürün fiyatının `0.00 TL` olması durumunda ürün detay sayfasında ve ürün kartlarında indirim yüzdesi hesaplanırken oluşan sıfıra bölünme hatası (`DivisionByZeroError` / 500 hatası) giderildi.
