▶️ Pozisyon Tamamen Kapattım

Tüm SVGYO adetini sattım — pozisyon kapanır + kapalı pozisyonlar sekmesi

  1. Trigger: "Pozisyonu Kapat" butonu (UI shortcut) veya tüm adet sat işlemi
  2. Backend: Mevcut adet × current price ile tek seferlik satış
  3. Database:
    BEGIN;
      INSERT trades (tip='sat', adet=1005999, fiyat=18.85);
      UPDATE positions SET adet=0, durum='kapali' WHERE portfolio_id=23919 AND sembol='SVGYO';
      INSERT closed_positions (
        sembol='SVGYO',
        acilis_tarih='2026-03-12',
        kapanis_tarih='2026-05-25',
        toplam_maliyet=21350544,
        toplam_satis=18963081,
        gerceklesen_kz=-2387463,
        gerceklesen_kz_yuzde=-11.18
      );
      UPDATE wallet_balance SET tutar = tutar + 18963081;
    COMMIT;
  4. Domain Events: trade:changed + portfolio:changed + position:closed + wallet:transaction
  5. UI:
    • Pozisyonlar tablosundan SVGYO kalkar
    • "Kapalı Pozisyonlar" sekmesinde yeni kayıt
    • Cüzdan +₺18.96M gelir
    • K/Z özette gerçekleşen kayıp olarak görünür

📋 Kapalı Pozisyon Schema

{
  "sembol": "SVGYO",
  "acilis_tarih": "2026-03-12",
  "kapanis_tarih": "2026-05-25",
  "tutma_suresi_gun": 73,
  "toplam_maliyet": 21350544,
  "toplam_satis": 18963081,
  "gerceklesen_kz": -2387463,
  "gerceklesen_kz_yuzde": -11.18,
  "yillıklandirilmis": -47.2  // (73 gün → 365 ekstrapolasyon)
}

🔌 Endpoints

POST/api/portfolio/trade
GET/api/portfolio/{id}/closed-positions
GET/api/portfolio/{id}/realized-pnl