# Modül Değişiklik Geçmişi ve Durum Kaydı (Change Log)

Bu dosya, projedeki her modülün mevcut durumunu, sorumluluğunu ve yapılan değişikliklerin geçmişini tutar. Değişiklik yapmadan önce bu dosya incelenmeli ve yapılan her yeni işlem sonrasında bu dosya güncellenmelidir.

---

## 📁 1. Config Modülleri (`src/config/`)

### 🔑 `secrets.js`
*   **Sorumluluk:** API tokenları, Google/Meta OAuth client ID ve secret bilgileri ile ayar dosyası okuma yardımcılarını barındırır.
*   **Mevcut Durum:** Aktif. Instagram ve Google Drive ayarlarını `sessions/monitor-settings.json` dosyasından dinamik olarak yükler.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* Monolitik `server.js` dosyasından tüm secret ve API tanımları bu dosyaya taşındı.

### 🔌 `socket.js`
*   **Sorumluluk:** JWT yetkilendirmesi entegre edilmiş Socket.io sunucu kurulumunu ve global `io` erişimini yönetir.
*   **Mevcut Durum:** Aktif. `session_token` ile auth kontrolü yapar.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* Socket.io bağlantısı ve middleware logic'i buraya taşındı. `initial_state` veri gönderim yapısı kuruldu.
    *   *2026-07-20:* `cookies.session_token` eklendi, böylece Socket.io yetkilendirmesi başarısız olup bağlantının anında kesilmesi (disconnect) engellendi.

### 💾 `store.js`
*   **Sorumluluk:** Backend genelinde tüm servislerin ve Socket.io'nun eş zamanlı kullandığı merkezi bellek durumunu (state) yönetir.
*   **Mevcut Durum:** Aktif. Bellekteki değişkenlerin referans karışıklığını önlemek için tek bir mutable nesne (`store`) dışa aktarır.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* İlk kurulum yapıldı. Tüm global state'ler bu nesneye bağlandı.

---

## ⚙️ 2. Servis Katmanı (`src/services/`)

### 📊 `ga4Service.js`
*   **Sorumluluk:** Google Analytics 4 API bağlantısını ve 3 sitenin aktif ziyaretçi sayıları ile geçmiş trafik verilerini sorgular.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* GA4 entegrasyonu taşındı. Token yenileme yarışı (race condition) hatalarını engellemek için paralel sorgulama (`Promise.all`) yerine ardışık/sıralı sorgulama (`await` / sequential) yapısına geçildi. `getRealtimeDimensions` ve `getHistoricalReport` fonksiyonları eklendi.

### 💻 `sshService.js`
*   **Sorumluluk:** Kaptanspor sunucusuna güvenli tünel açıp CPU/RAM/Disk/Uptime verilerini çeker.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* SSH komut çalıştırıcı ve çıktı ayrıştırıcı (parser) buraya taşındı.

### 🛒 `ecomService.js`
*   **Sorumluluk:** E-ticaret veritabanından sipariş, ciro, üye metriklerini ve son sipariş detaylarını çeker.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* E-ticaret entegrasyonu taşındı. Boş dönen `recent_orders` verisini doldurmak için ecom api mapping yapısı eklendi.
    *   *2026-07-20:* `recent_events` listesinden `eventFlow` geçmişinin otomatik kurulması sağlandı; son sipariş listesine satış kanalı (`sales_channel`) ve ürün varyantları (`items`) eklendi.

### 🛍️ `trendyolService.js`
*   **Sorumluluk:** Trendyol sipariş senkronizasyon, durum ve soru-cevap metriklerini çeker.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* Trendyol entegrasyonu buraya taşındı.

### 📦 `backupService.js`
*   **Sorumluluk:** Sitelerin yedekleme durumlarını periyodik denetler.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* Yedek sorgu servisi buraya taşındı.

---

## 🕹️ 3. Kontrolörler (`src/controllers/`)

### 🔐 `authController.js`
*   **Sorumluluk:** SSO Bridge ve Google OAuth (GA4, GDrive) yönlendirme/callback mantığını yönetir.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* SSO ve Google OAuth callback metotları eklendi.

### ⚙️ `settingsController.js`
*   **Sorumluluk:** Monitör ayarlarını kaydeder ve günceller.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* Ayar okuma ve yazma API metotları eklendi.

### 📸 `instagramController.js`
*   **Sorumluluk:** Instagram Business API bağlantısı, veri derleme ve bildirim silme (dismiss) işlemlerini yürütür.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* Instagram detail fetch ve notification dismiss API endpoint'leri buraya taşındı.
    *   *2026-07-20:* `fetchInstagramSummary` fonksiyonu sonuna `instagram_update` Socket.io yayını eklendi, böylece ilk açılışta ve veri çekildiğinde arayüz anında güncellenmektedir.

### 🔔 `webhookController.js`
*   **Sorumluluk:** Canlı e-ticaret sipariş akışını ve Instagram Meta webhook event'lerini işler.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* Webhook alıcı mantığı ve event flow push mantığı buraya taşındı.
    *   *2026-07-20:* Instagram webhook canlı akış elemanlarına `user` ve `desc` özellikleri eklenerek arayüzde doğru kullanıcı adı ve içerik özeti gösterilmesi sağlandı.

### 🗄️ `backupController.js`
*   **Sorumluluk:** Manuel yedekleme tetiklemelerini ve log okumalarını yönetir.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* Yedek detay API uç noktaları taşındı.

### 🛍️ `ecomController.js` [NEW]
*   **Sorumluluk:** Sipariş detaylarını çeker, ürünlerin stok kodlarına göre Hitit SOAP API üzerinden canlı mağaza stoklarını sorgular ve sipariş edilen varyant bedeniyle eşleştirir.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* Yeni dosya oluşturuldu. `/api/order-detail` rotası ve Hitit SOAP API'sine `X-Kaptan-Stok-Check: true` başlığıyla istek atıp süzme yapan kontrolör mantığı eklendi.

---

## 🛣️ 4. Rotalar, Arayüz ve Giriş Noktası (`src/routes/`, `public/` ve `server.js`)

### 🗺️ `api.js`
*   **Sorumluluk:** Tüm API uç noktalarını ve HTTP rotalarını tek bir yerde tanımlayan router.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* `/api/analytics-detail` rotasının eksik olduğu saptandı ve GA4 controller'dan import edilerek router'a başarıyla eklendi.
    *   *2026-07-20:* `/api/order-detail` rotası import edilerek router'a eklendi.

### 🎨 `app.js` & `index.html` (Arayüz)
*   **Sorumluluk:** Preact frontend arayüz katmanı.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* Sipariş detay modalı `modal-lg` ve `800px` genişliğe büyütüldü. Çarpı kapatma butonu ikonu FontAwesome `fa-times` ile modernleştirildi.
    *   *2026-07-20:* Ürün altlarında o bedenin bulunduğu fiziksel mağaza stoklarının listelenmesi sağlandı.
    *   *2026-07-20:* Arayüzdeki cache sorunlarını aşmak için `index.html` içerisindeki `app.js` script tag'ine versiyon cache-buster parametresi (`?v=1.0.2`) eklendi.

### 🚀 `server.js`
*   **Sorumluluk:** Express uygulamasını kuran, statik dosyaları servis eden, socket'i başlatan ve arka plan Interval cron'larını yöneten giriş noktası.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* Monolitik yapı temizlenerek MVC/Service katmanlarını ayağa kaldıran sade bir giriş noktasına dönüştürüldü.

---

## 📁 5. Kaptanspor Uzak Sunucu Modülleri (`remote_changes/kaptanspor/`)

### 🔌 `monitor_events.php`
*   **Sorumluluk:** Uzak e-ticaret sunucusunda sipariş, destek, iade, iptal ve üye kayıtlarını veritabanından çekip JSON döner.
*   **Mevcut Durum:** Aktif.
*   **Geçmiş Değişiklikler:**
    *   *2026-07-20:* Log kancalarının eksikliğinden dolayı destek talepleri, iadeler, iptaller, üye kayıtları ve ürün sorularının akışa düşmemesi sorunu, doğrudan ilişkili MySQL tabloları (`destek_talebi`, `siparis_urunler_iade`, `siparis_urunler_degisim`, `siparis_iptal`, `uyeler`, `urun_sorulari`) query'ler yardımıyla okunarak ve tek bir event stream halinde birleştirilerek çözüldü.
    *   *2026-07-20:* Hem hook tablosundan hem de native tablolardan okunan kayıtların (özellikle üye kayıtları) çift çift gelmesini önlemek amacıyla zaman ve müşteri ismine göre çalışan **akıllı tekilleştirme (deduplication)** filtresi entegre edildi.
